Androidサービスオープン方式

1396 ワード

オープンモード
  • 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) {
    
            }
        }
    }
    

    サービスの混合呼び出し
    *    ,   ,   ,   。