代码之家  ›  专栏  ›  技术社区  ›  Andrea Leganza

检测onStop是否是由于通知开始呈现新活动的新意图或在destroy()之前调用的

  •  0
  • Andrea Leganza  · 技术社区  · 6 年前

    我在一个活动a上运行了一个计时器,在此计时器期间,可能会出现一个通知,用户单击该通知上的一个按钮将触发一个新的意图,从而推送一个隐藏当前活动a的新活动b。

    只有当activityA的on stop()在ondestroy()之前被调用时,我才必须停止activityA中的计时器,因为新的activityB在顶部出现(用户单击通知并激发意图),而不是由于可见性状态的更改(例如:用户按主按钮/电源按钮)。

    我可以在on stop()上停止计时器,但这将在任何情况下停止计时器(通知的新意图、屏幕关闭、电源按钮按下)

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

    我在想一种方法来阻止计时器访问activityA在activityB上的堆栈中导航。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Richard Le Mesurier    6 年前

    你可以建立一个 BroadcastReceiver 在里面 activityA ,通知意图可以触发。在那里,停止计时并启动 activityB .

    注意,如果你的计时器是 活动性 ,如果 活动性 在背景中。如果这是个问题,请考虑将计时器保持在前台 Service ,或者改为使用警报。