我有一个在活动A上运行的计时器,在此计时器内可能会显示通知,并且用户单击该按钮上的按钮将触发新的意图,该意图会推动新的活动B来隐藏当前的活动A。
由于新的活动B在顶部(用户单击通知并触发意图),而不是通过更改可见性状态,因此我仅必须在活动a之前停止计时器onStop()在ondestroy()之前停止(例如:用户按下主屏幕按钮/电源按钮)。
我可以在onstop()上停止计时器,但这将在所有情况下停止计时器(通知中的新意图,屏幕关闭,按下电源按钮)
我可以在ondestroy()上停止计时器,但是这样可以防止在呈现另一个活动B时停止计时器。
我正在考虑一种方法,以停止计时器访问activityA,从而在activityB上浏览堆栈。
答案 0 :(得分:1)
您可以在BroadcastReceiver
中设置一个activityA
,通知意图可以触发该事件。在那儿,停止计时器并启动activityB
。
请注意,如果您的计时器是activityA
的字段,那么如果activityA
在后台,则它可能会被破坏。如果这是一个问题,请考虑将计时器保持在前台Service
上,或使用警报代替。