0

アクティビティを呼び出し、そのActivity_Bインスタンスの 1 つが既にバックスタックに存在する場合、そのインスタンスに戻り、間にあるすべてのアクティビティを削除し、そのインスタンスを再作成します (コンテンツを更新するため)。

私は試した:

Intent intent = new Intent(Activity_A.this, Activity_B.class);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
finish();

そしてActivity_Bで:

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    Log.d("Activity_B", "onNewIntent");
    //Thought of refreshing the content here.
}

上記のすべてのアクションを実行するものは見つかりませんでした。

私が見つけた最良FLAG_ACTIVITY_SINGLE_TOPの方法は、アクティビティを再作成せず、代わりにonNewIntent()コンテンツを更新できる場所を呼び出すことでした。

ただし、 Activity_Bの新しいインスタンスが呼び出されるたびに。

私は何が欠けていますか?

ありがとうございました

4

1 に答える 1

1

代わりにFLAG_ACTIVITY_REORDER_TO_FRONTを使用してみてください。アクティビティの以前に実行されていたインスタンスが存在する場合は、それが前面に表示されます。

アクティビティがフォアグラウンドにonResume()なると、そのメソッドが通常どおり呼び出され、UI を更新できます。

于 2013-09-04T09:53:41.607 に答える