2012-07-25 110 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

您可以加载通知与您可以用它来改变活动的控制流程的特定额外意图,这也可能会与当前活动堆栈用于确保方向。