1

ロケーションリスナーでロケーションを受け取るアクティビティがあります。このアクティビティは、startService() によってサービスを開始し、サービスとデータを共有するために bindService() でこのサービスにバインドします。

バインドとバインド解除は、onClick 内のボタン クリックに応答して行われます。何かのようなもの:

onClick(){
  if(!bind){
         startService(serviceIntent)
         bindService(serviceIntent, mConnection, Context.BIND_AUTO_CREATE);
         bind=true;
}else{
      unbindService(mConnection);
      stopService(serviceIntent);
      bind=false;
    }
}

今私の質問は、ホームボタンを押したときのように、ある時点でアクティビティがバックグラウンドになり、サービスは実行され続け、バインドはそのままです!

このバインドは、Activity をバックグラウンドで実行し続けるのに役立ちますか?

このサービスは、通知が関連付けられた foregroundService であり、ユーザーが通知を押すと、バックグラウンド アクティビティが開きます。

4

1 に答える 1

0

いいえ、アクティビティはいつでも破棄できますが、システムの現在のメモリの状態によって異なります (Android がメモリを解放する必要があるときにシステムでアプリの優先度が十分に高くない場合、おそらく破棄されます)。もちろん、サービスは引き続き実行され、設定したSTICKY +通知として設定されていれば、そのままになります。ただし、バックグラウンドでのアクティビティがどの時点でも存続するという保証はありません。

于 2015-03-28T19:22:51.690 に答える