2012-07-25 98 views
2

在我的應用程序,我有兩個Activites,A和B,A是根/發射活動,和B是從推送通知開始。如果用戶在另一個應用程序中,並點擊我的推送通知,則活動B將啓動。當我在此Activity上調用finish()時,我希望用戶在單擊通知之前返回到它們所在的應用程序。相反,它們被帶到活動A,根活動。啓動活動,並返回到以前的活動

是否有一個開始從一個通知一個活動,然後完成活動並返回用戶,他們在以前的應用程序呢?

+0

在開始活動B之前完成活動A,沒有幫助嗎? – 2012-07-25 06:41:45

回答

1

後續的代碼行,我從第3應用程序測試that.In AndroidManifest.xml中

<activity android:name=".A" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name" > 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" />    
</intent-filter>   
</activity>    
<activity android:name=".B" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name2" > 
<intent-filter>   
<action android:name="android.intent.action.MAIN" />  
</intent-filter> 
</activity> 

,請撥打:

Intent intent = new Intent(); 
intent.setClassName("your.app.packge", "your.app.packge.B"); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   
context.startActivity(intent);   

U可以嘗試在您的項目。

+1

FLAG_ACTIVITY_NEW_TASK是一個gamechanger,它有效地允許在一個應用程序中單獨的活動堆棧。爲了讓它起作用,我不得不在我的Activity中添加一個android:taskAffinity屬性。 – SeanPONeil 2012-07-26 15:20:22

0

您可以加載通知與您可以用它來改變活動的控制流程的特定額外意圖,這也可能會與當前活動堆棧用於確保方向。