OnRestart vs. OnResume - Android生命周期问题

jon*_*ohn 14 events lifecycle android

我的最终目标是让一个应用程序运行一个代码块,当它(应用程序,而不是活动)被打开后(从主屏幕返回等)...

根据活动生命周期,这应该是onRestart()基于每个活动的事件(至少我如何解释它)

这两个onRestart()onResume()被称为我是否该应用程序(后退按钮),当应用程序被称为备份中久违的活动.

鉴于此图 在此输入图像描述

我这样解释:

  • RED =应用程序内活动之间的移动
  • BLUE =移动到应用程序之外的活动

我的理解不正确吗?

编辑(澄清具体用例)

我正在尝试使用onRestart()复制onCreate()中的一些安全逻辑(PIN验证),但即使我按下应用程序内的后退按钮,它也会被调用...

Pet*_*r-W 1

这是因为,除非您使用片段,否则应用程序中的每个“屏幕”都是一个新活动,当您单击后退按钮时,它会重新启动之前页面的活动。

如果我理解您想要正确执行的操作,那么您希望将代码放在 onCreate 而不是 onRestart 上。

请参阅评论主题以获得答案

  • 不,每次创建 Activity 时都会调用它。如果您的应用程序有多个 Activity,则每次创建一个 Activity 时都会调用 onCreate,即使应用程序一直在运行也是如此。 (4认同)