Service - bindService()
AndroidManifest.xml
<service android:name=".MyService" > <intent-filter> <action android:name="com.bob.servicetest" /> </intent-filter> </service>
Activity
@Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_start: bindService(new Intent("com.bob.servicetest"), sc, Context.BIND_AUTO_CREATE); isBinded = true; break; case R.id.btn_stop: if (isBinded) { unbindService(sc); isBinded = false; }
break; } } private ServiceConnection sc = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder binder) { MyService.MyBinder myBinder = (MyBinder) binder; } @Override public void onServiceDisconnected(ComponentName name) { } };
MyService.class
public class MyService extends Service { public static final String TAG = "MyService"; private MyBinder binder; @Override public void onCreate() { super.onCreate(); binder = new MyBinder(); Log.i(TAG, "onCreate"); } @Override public IBinder onBind(Intent arg0) { Log.i(TAG, "onBind"); return binder; } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.i(TAG, "onStartCommand"); return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { super.onDestroy(); Log.i(TAG, "onDestroy"); } public class MyBinder extends Binder{ public MyService getService(){ return MyService.this; } } }