1

外部アクティビティを起動する必要があるサービスがあります。アクティビティを開始した後も、そのサービスは引き続き実行されるようにしたいと思います。問題は、onDestroy()が呼び出され、サービスが強制終了されることです。これが私のコードです:

サービス内から外部アクティビティを開始する方法:

      Intent intent = new Intent(Intent.ACTION_DIAL);        
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      context.startActivity(intent);

何か案が?

4

1 に答える 1

2

サービス内からアクティビティを開始すると、そのサービスが強制終了されるのは正常ですか?

サービスは「殺される」わけではありません。

サービスは次の状態になるまで実行されます。

  • サービスを参照して電話stopService()する、または
  • サービスコールstopSelf()、または
  • バインディングパターンを使用している場合、すべてのバインディング(via bindService())はバインドされていない(via unbindService())、または
  • Androidは、メモリ不足の状態やユーザーのリクエストなどにより、プロセスを終了します

したがって、どの条件が真であるかを判断する必要があります。必ずしも活動の開始とは何の関係もありません。

サービスからアクティビティを開始することは、特にユーザー入力に基づくのではなく、任意の時間に発生する可能性がある場合は特に、一般的にはお勧めできません。ユーザーはどこからともなく現れる活動を嫌います。

于 2013-03-24T20:03:31.427 に答える