Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy is onStart is not called?
    primarykey
    data
    text
    <p>I am trying to implement a very simple service example. The user inputs the value through EditText and clicks on Calculate Button. The Calculate button triggers a service which performs some calculations and sends the result back to another EditText box. If I use a simple service without binding, the result gets displayed before the calculation is performed, so I want to use a bound service. But in my case, the control just stops at onBind call and onStart does not get executed. The control does flow to onCreate though. Could anyone help me to find where I am going wrong? </p> <pre><code>public class SimpleService extends Service { private final IBinder mBinder = new LocalBinder(); @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub System.out.println("Service: OnBind"); return mBinder; } public class LocalBinder extends Binder { SimpleService getService() { System.out.println("Service: in Local binder"); return SimpleService.this; } } @Override public void onCreate() { super.onCreate(); System.out.println(" Service:In on create..."); Toast.makeText(this,"Service created ...", Toast.LENGTH_LONG).show() } @Override public void onDestroy() { super.onDestroy(); System.out.println(" Service:in on destroy..."); Toast.makeText(this, "Service destroyed ...", Toast.LENGTH_LONG).show(); } @Override public void onStart(Intent intent, int startid) { System.out.println("Service:in onstart command ..."); super.onStart(intent, startid); int res; String LOG_TAG = ""; int input2 = intent.getIntExtra("input", -1); int mode = intent.getIntExtra("mode", -1); String aString = Integer.toString(mode); Log.v(LOG_TAG, aString); if(mode == 1) { res = cal_F(input2); } else { res = cal_C(input2); } intent.putExtra("result", res); } } </code></pre> # <pre><code>public class ClassExamplesServiceActivity extends Activity implements OnClickListener{ @Override public void onClick(View v) { input = Integer.parseInt(input1.getText().toString()); if(v.getId() == R.id.radio_fib) rd_button = 0; else if(v.getId() == R.id.radio_fact) rd_button = 1; else if (v.getId() == R.id.button1){ intent = new Intent(this, SimpleService.class); intent.putExtra("input", input); intent.putExtra("mode", rd_button); doBindService(); System.out.println("in class activity "+System.currentTimeMillis()); } else if(v.getId() == R.id.stop) { stopService(intent); } } private ServiceConnection mConnection = new ServiceConnection() { public void onServiceConnected(ComponentName className, IBinder service) { System.out.println("\n in service connection"); mBoundService = ((SimpleService.LocalBinder)service).getService(); } public void onServiceDisconnected(ComponentName className) { System.out.println("\n in service disconnected"); mBoundService = null; } }; void doBindService() { System.out.println("in do bind service"); boolean isConnected = bindService(new Intent(ClassExamplesServiceActivity.this, SimpleService.class), mConnection, Context.BIND_AUTO_CREATE); intent.putExtra("input", input); intent.putExtra("mode", rd_button); System.out.println("\n isconnected = "+ isConnected); mIsBound = true; } void doUnbindService() { if (mIsBound) { res = intent.getIntExtra("result", -1); result.setText(Integer.toString(res));// Set the result in the EditText // Detach our existing connection. unbindService(mConnection); mIsBound = false; } } @Override protected void onDestroy() { super.onDestroy(); doUnbindService(); } } </code></pre> # <pre><code>&lt;application android:icon="@drawable/ic_launcher" android:label="@string/app_name" &gt; &lt;activity android:label="@string/app_name" android:name=".ClassExamplesServiceActivity" &gt; &lt;intent-filter &gt; &lt;action android:name="android.intent.action.MAIN" /&gt; &lt;category android:name="android.intent.category.LAUNCHER" /&gt; &lt;/intent-filter&gt; &lt;/activity&gt; &lt;service android:name=".SimpleService"&gt;&lt;/service&gt; &lt;/application&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload