ここで言いたいのは、アプリを以前と同じ状態から再起動するために直面している問題です。私はこれについて多くの研究開発を行い、stackoverflow に投稿された質問を調べました。重複していると言う必要はありません。
objIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
アクティビティを開始するときにこれらのオプションを入れてみました。また、私はこれを試しました、
objIntent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
そして最後に私もこの方法を試しました
objIntent.setAction(Intent.ACTION_MAIN);
objIntent.addCategory(Intent.CATEGORY_LAUNCHER);
しかし、これらのどれも私のために働いているようには見えません。
シナリオは次のようになり、これは失敗します。
アプリケーションを実行し、A から B への最初のアクティビティからいくつかのアクティビティに移動します
次に、電話のホームボタンを押して、写真をクリックするなどのアクションを実行します。
もう一度、ホーム画面からアプリを起動しようとします。
おっとっと!!現在、私のアプリはその状態を保持しておらず、初期状態から起動しています。
ノート:
ただし、これはすべての場合に当てはまるわけではありません。場合によっては、10 回または 15 回のうち 1 回または 2 回程度、元の状態から起動します。
私が持っているもう1つの疑問は、すべての意図に対してこれを設定する必要があるかということです? アクティビティを開始する、つまり意図の位置が 10 以上あるとします。これらすべての場所にこのコードを追加する必要がありますか? 私はこれを2つか3つの場合に含めました
アップデート:
これはデバッグ モードで機能しますが、apk 作成の段階になると失敗します。ただし、何度も試すと、必要な結果が得られ、その後は期待どおりに動作します。なぜこのようなことが起こったのかを理解するために頭を悩ませています。
誰もこれに対する答えを持っていますか?