我的最终目标是让一个应用程序在它(应用程序,而不是活动)在离开(从主屏幕返回等)后打开时运行一段代码。
根据活动生命周期,这应该是每个活动的onRestart()
事件(至少我是如何解释的)
无论我是返回应用程序内的活动(后退按钮)还是当调用应用程序时,都将调用onRestart()
和onResume()
。
给出这个图表
我这样解释:
红色=应用程序内活动之间的移动
蓝色=移动到应用程序外部的活动
我的理解不正确吗?
编辑(澄清特定用例)
我试图使用onrestart()来复制oncreate()中的一些安全逻辑(pin验证),但即使我在应用程序中按下back按钮,也会调用它…
最佳答案
这是因为,除非您使用的是片段,否则应用程序中的每个“屏幕”都是一个新活动,当您单击“上一步”按钮时,它会在页面之前重新启动页面的活动。
如果我理解您想要正确地做什么,那么您需要将代码放在oncreate上,而不是restart上。
请参阅注释线程以获取答案