Android のライフサイクルについて質問があります。これは、私のメイン アプリケーションのonCreateメソッドです。
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
decode = new Decode(this);
adjustToDimensions();
setLoadingScreen("Zorgdossier wordt geladen...");
initReceiver();
startCommunicationWithServer();
}
画面を読み込み画面に設定し、broadcastReceiver を初期化し、サーバーにメッセージを送信します。
ここで、ホームボタンを押してアプリケーションを再度起動すると、常にこのアクティビティを開始したいので、追加しました
android:clearTaskOnLaunch="true"
マニフェストに。
しかし、ユーザーがアプリケーションを再度起動したときにstartCommunicationWithServer () を実行したいと考えています。このメソッドはサーバーにメッセージを送信し、サーバーは受信側で受信したメッセージを送信します。このメッセージで、表示する画面を決定します。
私はそれをonRestartメソッドに入れようとしました:
@Override
protected void onRestart() {
Log.d("MainActivity", "activity restarted");
startCommunicationWithServer();
super.onRestart();
}
ただし、このアクティビティはアプリケーション全体で複数回表示されるため、毎回 onRestart メソッドが実行されます。しかし、アプリケーションの開始時にstartCommunicationWithServer () を実行する必要があるだけです。
簡単に言えば、ユーザーがアプリケーションを終了してからアプリケーションを開始するときに、 startCommunicationWithServer () メソッドを呼び出すにはどうすればよいでしょうか?