1

基本的に必要なのは、インスタンスを前面に移動するActivityたびに1 つ再作成し、他のアクティビティを破壊しないことです。startActivity()

たとえば、アクティビティスタックにある場合

A->B->C->D

DI から B を開きたい場合、現在使用しているフラグはFLAG_ACTIVITY_REORDER_TO_FRONT、Activity スタックをこの状態のままにするフラグです: A->C->D->B. アクティビティ スタック内のその順序は完璧ですが、そのフラグでActivityは再作成されずonNewIntent()に呼び出されます。

の複雑さのためにActivity多くのことをリファクタリングしたくないので、メソッドonCreate()でロジックを実行する代わりに、B を最初から再作成する (呼び出す必要がある) ことが必要です。onNewIntent()アクティビティ スタックは、 を使用した場合と同じ状態になるはずFLAG_ACTIVITY_REORDER_TO_FRONTです。何か案が?あなたの助けは大歓迎です。:)

4

1 に答える 1

0

すべての作業が で行われonCreate()、同じものを 内で動作させたいonNewIntent()場合は、単純なリファクタリングで回避できる可能性があります。すべてのコードがsetupActivity()呼び出しにある場所。

public void onCreate (Bundle savedInstanceStateF) 
{
   super.onCreate (savedInstanceStateF);
   setupActivity();
}

public void onNewIntent(Intent intentF)
{
   super.onNewIntent(intentF);
   setupActivity();
}
于 2014-10-10T14:15:01.657 に答える