android 服务开启方式

开启方式

  • 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) {

        }
    }
}

服务的混合调用

* 先开始,再绑定,先解绑,再停止。

你可能感兴趣的:(android 服务开启方式)