开启方式
- startService
- 该方法启动的服务所在的进程属于服务进程
- Activity一旦启动服务,服务就和Activity没有任何关系了
- bindService
- 该方法启动的服务所在的进程不属于服务进程
- Activity与服务建立连接,acitivty一旦死亡,服务也会死亡
public class MainActivity extends AppCompatActivity {
private Intent intent;
private MyServiceConnection connection;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intent = new Intent(this, MyService.class);
connection = new MyServiceConnection();
}
public void start(View v) {
startService(intent);
}
public void stop(View v) {
stopService(intent);
}
public void bind(View v) {
//绑定服务
bindService(intent, connection, BIND_AUTO_CREATE);
}
public void unbind(View v) {
unbindService(connection);
}
class MyServiceConnection implements ServiceConnection {
//服务连接成功时调用
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
}
//服务失去连接时调用
@Override
public void onServiceDisconnected(ComponentName name) {
}
}
}
服务的混合调用
* 先开始,再绑定,先解绑,再停止。