了解Service的生命周期,以及在startService和bindService时,Service如何响应
/** * Android Service 示例 * */ public class MusicService extends Service { private static final String TAG = "MusicService" ; public static final String ACTION = "com.game.music.service.MusicService"; @Override public IBinder onBind(Intent intent) { Log.v(TAG, "MusicService onBind"); return null; } @Override public void onCreate() { Log.v(TAG, "MusicService onCreate"); super.onCreate(); } @Override public void onStart(Intent intent, int startId) { Log.v(TAG, "MusicService onStart"); super.onStart(intent, startId); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.v(TAG, "MusicService onStartCommand"); return super.onStartCommand(intent, flags, startId); } } <service android:name="com.game.music.service.MusicService"> <intent-filter> <action android:name="com.game.music.service.MusicService"/> </intent-filter> </service>
public class ServiceDemoActivity extends Activity { private static final String TAG = "ServiceDemoActivity"; Button bindBtn; Button startBtn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bindBtn = (Button)findViewById(R.id.bindBtn); startBtn = (Button)findViewById(R.id.startBtn); bindBtn.setOnClickListener(new OnClickListener() { public void onClick(View v) { bindService(new Intent(MusicService.ACTION), conn, BIND_AUTO_CREATE); } }); startBtn.setOnClickListener(new OnClickListener() { public void onClick(View v) { startService(new Intent(MusicService.ACTION)); } }); } ServiceConnection conn = new ServiceConnection() { public void onServiceConnected(ComponentName name, IBinder service) { Log.v(TAG, "onServiceConnected"); } public void onServiceDisconnected(ComponentName name) { Log.v(TAG, "onServiceDisconnected"); } }; @Override protected void onDestroy() { Log.v(TAG, "onDestroy unbindService"); unbindService(conn); super.onDestroy(); }; }