我有一个关于 Android 通知和活动顺序的问题。
我有以下情况:
我将 Activity_Main 作为我的第一个活动,它执行一些任务。当按下 BACK 按钮时,它会生成通知。Activity_Main 有以下调用 ( onKeyDown()
, OnPause()
, OnStop()
, OnDestroy()
)。当用户单击通知图标时,Activity_Main 将启动并且调用顺序为 ( OnCreate()
, OnResume()
)。这很好。
现在 Activity_Main 包含使用StartActivityForResult()
api 启动 Activity_Second 并生成任务进度通知的按钮,函数调用为 ( onSaveInstance()
, OnPause()
, OnStop()
)。如果用户按 Activity_Second 上的返回按钮setResult(result)
,一切正常。但是,如果用户选择通知图标(activity_seconds 可见),那么 Activity_main ( onCreate()
, OnResume()
) 上的新实例就会启动。我想要的是 Activity_Second 应该关闭它并且onResume()
应该调用(Activity_Main)。现在 Activity_Main(2nd instance), Activity_second, Activity_Main(1st instance) 在活动堆栈上。
我在生成通知时设置了以下标志。
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
还有什么其他方法可以解决这个问题?