1

2 つのアクティビティ (A と B) があり、それらを切り替えるボタンが 2 つあります。

  1. オンクリエイト
  2. Bオンクリエイト
  3. オンクリエイト
  4. 履歴書

私がやりたかったのは、インテントを B から A に送信した後、 oncreate を呼び出すべきではありませんが、この時点では呼び出します。それを克服するために、私は FLAG_ACTIVITY_REORDER_TO_FRONT (ここから) を見つけ、onresume しか呼び出せないと思っていましたが、そうではありませんでした。

4

3 に答える 3

3

FLAG_ACTIVITY_REORDER_TO_FRONTあなたがすべきだと思うことを正確に行います。ただし、開始してから開始してActivityAそれ自体を呼び出した場合、Intent で開始したときに前面に持ってくるインスタンスはありません。この場合、Android は単純に新しいものを作成します。それがあなたが見ているものだとしか思えません。ActivityAActivityBfinish()ActivityBActivityAFLAG_ACTIVITY_REORDER_TO_FRONTActivityA

于 2013-03-05T15:43:46.990 に答える
0

FLAG_ACTIVITY_REORDER_TO_FRONT活動履歴を変更します。要求されたアクティビティが (タスク内で) 以前にアクセスしたアクティビティの履歴にある場合、このアクティビティの古い履歴レコードは消去されます。そのため、戻るボタンを押している間、ユーザーはタスクでこのアクティビティに遭遇しません。

このフラグは への呼び出しには影響しonCreate()ません。アクティビティがタスクに存在しない (ロードまたは破棄されていない) 場合、onCreate()が呼び出されて作成されます。

于 2013-03-05T13:03:07.430 に答える
0

onCreate をキャンセルすることはできません。B がフルスクリーン アクティビティの場合、Android は A アクティビティを強制終了し、FLAG_ACTIVITY_REORDER_TO_FRONT フラグを使用して再起動しようとすると、それを再作成し、onCreate メソッドを呼び出します。アクティビティ A を前面に表示しようとした時点でアクティビティ A がまだ生きている場合は、onCreate メソッドを呼び出すべきではありません。

多分あなたの場合、フラグメントを使用する必要がありますか?

于 2013-03-05T13:03:10.103 に答える