检测是否由于通知启动一个表示新活动的新意图或在destroy()之前调用onStop

时间:2018-08-03 11:09:59

标签: android android-lifecycle activity-lifecycle

我有一个在活动A上运行的计时器,在此计时器内可能会显示通知,并且用户单击该按钮上的按钮将触发新的意图,该意图会推动新的活动B来隐藏当前的活动A。

由于新的活动B在顶部(用户单击通知并触发意图),而不是通过更改可见性状态,因此我仅必须在活动a之前停止计时器onStop()在ondestroy()之前停止(例如:用户按下主屏幕按钮/电源按钮)。

我可以在onstop()上停止计时器,但这将在所有情况下停止计时器(通知中的新意图,屏幕关闭,按下电源按钮)

我可以在ondestroy()上停止计时器,但是这样可以防止在呈现另一个活动B时停止计时器。

我正在考虑一种方法,以停止计时器访问activityA,从而在activityB上浏览堆栈。

1 个答案:

答案 0 :(得分:1)

您可以在BroadcastReceiver中设置一个activityA,通知意图可以触发该事件。在那儿,停止计时器并启动activityB

请注意,如果您的计时器是activityA的字段,那么如果activityA在后​​台,则它可能会被破坏。如果这是一个问题,请考虑将计时器保持在前台Service上,或使用警报代替。