Android ライフサイクルの概念と関連するさまざまなイベントを理解しています。ユーザーに自分の番になったことを知らせる通知サービスを作成しました。ユーザーがアプリケーション内のアクティビティのいずれかを表示しなくなったときにのみ、これを実行したいと考えています。アプリケーションを使用している間、彼/彼女は自分の番かどうかを知ることができます。
質問:
Main.java クラスでライフサイクル イベントを設定した場合、ユーザーが別のクラスに移動するとどうなりますか? onPause イベントは発生しますか? ユーザーが 1 回のセッション中に 10 以上のアクティビティを終了する可能性がある場合、システムはどの onPause イベントを実行するかをどのように判断しますか?
現在、Main.java クラスの onStop および onRestart イベント中にサービスを開始および停止しています。これは期待どおりに機能していません。システム内にいても通知が発生し、外部 API への同時呼び出しが原因でシステムがロックアップします。(下記参照)。
public void onRestart() { super.onRestart(); Intent i = new Intent(Main.this, NotifyService.class); Main.this.stopService(i);
}
public void onStop() { super.onStop(); Intent i = new Intent(Main.this, NotifyService.class); i.putExtra("UserId", userId); Main.this.startService(i);
}
どんな助けでも大歓迎です。