0

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 () メソッドを呼び出すにはどうすればよいでしょうか?

4

0 に答える 0