若调用者没stopService,那Service会在后台一直运行。直到调用者再启动后stopService。
开始
Intent i = new Intent(this, TestService.class); this.startService(i);
结束
Intent i = new Intent(this, TestService.class); this.stopService(i);
会和调用者的生命周期绑定在一起,ServiceConnection就是起这个作用的。
开始
Intent i = new Intent(this, TestService.class); bindService(i, _connection, Context.BIND_AUTO_CREATE); _isBound = true;
结束
if (_isBound) {
unbindService(_connection);
_isBound = false;
}
private ServiceConnection _connection =
new ServiceConnection() {
public void onServiceConnected(
ComponentName className, IBinder service) {
_boundService =
((TestService.LocalBinder)service).getService();
Toast.makeText(MainActivity.this,
"Service connected",
Toast.LENGTH_SHORT).show();
}
public void onServiceDisconnected(
ComponentName className) {
// unexpectedly disconnected,we should never see this happen.
_boundService = null;
Toast.makeText(MainActivity.this,
"Service connected",
Toast.LENGTH_SHORT).show();
}
};