0

onPause()が呼び出されたときに次のアクティビティがどうなるかを特定する方法はありますか。

次のアクティビティが自分のアプリケーションのものではない場合、自分のアプリケーション内のアクティビティに移動するときに実行したくない特定のクリーンアップを実行する必要があるため、知っておく必要があります。アプリケーションでを実行するときに何らかのフラグを設定できることは知ってstartActivity()いますが、それを取得する組み込みの方法があるかどうか疑問に思いました。

4

1 に答える 1

0

他のどのアクティビティがフォーカスされたかを推測する方法はありません。そのようなもののために、すべてのアクティビティがカスタムのサスペンド関数を呼び出し、再開呼び出しを 10 秒間待機するApplicationクラスを実装しました。アクティビティによって再開呼び出しが行われなかった場合、アプリはシャットダウンして終了する必要があることを認識していました。

public ExampleApp extends Application {
    boolean shutdown;

    public void suspend() {
       shutdown=true;
       voodooFunctionToInvokeCallback10SeondsDelayed();
    }

    public void resume() {
       shutdown=false;
    }

    public void callback() {
        if(shutdown) {
            // shutdown code
        }
    }
}

public MyActivity extends Activity {
    public void onResume() {
        ((ExampleApp)getApplicationContext()).resume();
    }

    public void onPause() {
        ((ExampleApp)getApplicationContext()).suspend();
    }
}
于 2013-01-27T14:55:47.290 に答える