来自通知的活动订单

时间:2011-09-13 09:53:45

标签: android android-notifications

我对Android通知和活动顺序有疑问。

我有以下情况:

我将Activity_Main作为我的第一个活动,执行一些任务。按下BACK按钮时会生成通知。 Activity_Main有以下来电(onKeyDown()OnPause()OnStop()OnDestroy())。当用户单击通知图标时,Activity_Main已启动且调用顺序为(OnCreate()OnResume())。哪个没问题。

现在,Activity_Main包含使用StartActivityForResult() api启动Activity_Second的按钮,还会生成任务进度通知,函数调用为(onSaveInstance()OnPause()OnStop())。如果用户在setResult(result)上按下Activity_Second上的按钮,一切正常。但是,如果用户选择“通知”图标(activity_seconds可见),则会启动Activity_main(onCreate()OnResume())上的新实例。我想要的是Activity_Second应该关闭它并且应该调用(onResume()的Activity_Main)。现在Activity_Main(第二个实例),Activity_second,Activity_Main(第一个实例)在活动堆栈上。

我在生成通知时设置了以下标志。

notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);

解决这个问题的其他方法是什么?

2 个答案:

答案 0 :(得分:1)

在将这些标志添加到您的意图后尝试:

notificationIntent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

答案 1 :(得分:1)

@ vineet,它没有帮助。

Intent notificationIntent = new Intent(this,Activity_Main.class);

<activity ....android:launchMode="singleTask" >

一起帮我解决了这个问题...... from this link