2011-10-07 5 views
11

複数のアクティビティを一度に開始できますか?私は、メインから3つのアクティビティをいくつかの順序で作成し、最後のものだけを表示することができますか?これまでは1つのアクティビティしか作成できませんでした。Android - 複数のアクティビティを開始

おかげ

+3

なぜこれを行う必要がありますか?一度にアクティブにできるのは1人だけなので、多くのことを行っても、最後のものだけが表示され、他のものは一時停止されます。 –

+1

上のコメントに絶対同意してください。あなたは、あなたのアプリケーションのアーキテクチャを考え直すべきです。なぜ、ユーザーが利用できないアクティビティを開始したいのですか? – Egor

+1

なぜ一度に複数のアクティビティを開始する必要がありますか? –

答えて

3

は、最初の活動のあなたのonCreate方法 - の終わりにstartActivity(new Intent(...);を試してみてください。 これは即座に新しいアクティビティを起動し、最初のアクティビティを一時停止します。 バックキーを押すと最後のアクティビティに戻ります

+1

このアプローチの問題は、アクティビティCがアクティビティCを開始した後にシステムによって強制終了(終了)され、ユーザがアップボタンをクリックしてアクティビティBに戻ると、アクティビティBのonCreateアクティビティCを再度開始しようとします。 – tmin

31

たとえば、新しく追加されたコンテンツを表示するためにユーザーが通知をクリックした後、アプリに深く入り込むために、このようなことが必要な場合があります。このようにして

Intent i = new Intent(this, A.class); 
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
startActivity(i); 

Intent j = new Intent(this, B.class); 
j.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
startActivity(j); 

Intent k = new Intent(this, C.class); 
startActivity(k); 

あなたはアクティビティCにあなたの現在の活動から、単一の遷移を得ると同時に、活動A、BおよびCを開始し、活動AとBに遷移を抑制することができる私は強くあなたことを示唆していますたとえば、ライフサイクルのメソッド呼び出し(onCreateなど)をLogCatに記録します。イベントの順序を理解するのに役立ちます。

+1

働きがいのあることを確認しました.D –

+0

ありがとうございます。しかし、私は別の要件があります。私は2つのアクティビティAとBを持っています。私はstartActivityForResultを使用してBからAを開始する必要があります。これを行うと、AのonActivityResultは呼び出されません。方法はありますか? – kishorer747

+0

は@gmaleのように見えますが – Ewoks

2

これは、あなたが、基本的には、合成タスク(とそれが含まれている必要がありますすべての活動を)再構築する必要がディープリンクまたはその他の使用例に応じて行うための一般的なものになることができます。場合によっては、マニフェストにparentsと指定するだけでは不十分です。

TaskStackBuilderをご覧ください。 1つの一般的な例:

関連する問題