2 つのアクティビティ (A と B) があり、それらを切り替えるボタンが 2 つあります。
- オンクリエイト
- Bオンクリエイト
- オンクリエイト
- 履歴書
私がやりたかったのは、インテントを B から A に送信した後、 oncreate を呼び出すべきではありませんが、この時点では呼び出します。それを克服するために、私は FLAG_ACTIVITY_REORDER_TO_FRONT (ここから) を見つけ、onresume しか呼び出せないと思っていましたが、そうではありませんでした。
2 つのアクティビティ (A と B) があり、それらを切り替えるボタンが 2 つあります。
私がやりたかったのは、インテントを B から A に送信した後、 oncreate を呼び出すべきではありませんが、この時点では呼び出します。それを克服するために、私は FLAG_ACTIVITY_REORDER_TO_FRONT (ここから) を見つけ、onresume しか呼び出せないと思っていましたが、そうではありませんでした。
FLAG_ACTIVITY_REORDER_TO_FRONT
あなたがすべきだと思うことを正確に行います。ただし、開始してから開始してActivityA
それ自体を呼び出した場合、Intent で開始したときに前面に持ってくるインスタンスはありません。この場合、Android は単純に新しいものを作成します。それがあなたが見ているものだとしか思えません。ActivityA
ActivityB
finish()
ActivityB
ActivityA
FLAG_ACTIVITY_REORDER_TO_FRONT
ActivityA
FLAG_ACTIVITY_REORDER_TO_FRONT
活動履歴を変更します。要求されたアクティビティが (タスク内で) 以前にアクセスしたアクティビティの履歴にある場合、このアクティビティの古い履歴レコードは消去されます。そのため、戻るボタンを押している間、ユーザーはタスクでこのアクティビティに遭遇しません。
このフラグは への呼び出しには影響しonCreate()
ません。アクティビティがタスクに存在しない (ロードまたは破棄されていない) 場合、onCreate()
が呼び出されて作成されます。
onCreate をキャンセルすることはできません。B がフルスクリーン アクティビティの場合、Android は A アクティビティを強制終了し、FLAG_ACTIVITY_REORDER_TO_FRONT フラグを使用して再起動しようとすると、それを再作成し、onCreate メソッドを呼び出します。アクティビティ A を前面に表示しようとした時点でアクティビティ A がまだ生きている場合は、onCreate メソッドを呼び出すべきではありません。
多分あなたの場合、フラグメントを使用する必要がありますか?