每次打开Android应用程序时运行oncreate

时间:2017-01-20 15:00:29

标签: android activity-lifecycle

我制作了一个Android应用程序,当我关闭应用程序(使用主页按钮)并重新打开应用程序时,它不会再次调用onCreate()。相反,它只是从内存加载。

如何确保每次打开应用程序onCreate()时都会确定?

修改 该应用必须在onCreate()onResume()中执行相同的操作。

当我将确切的代码复制到函数onResume()时,它的工作方式不同。

因此,我想完全关闭应用程序(和进程)(或执行类似操作),以便在重新打开应用程序后始终调用onCreate()

4 个答案:

答案 0 :(得分:1)

  

当我关闭应用程序时(使用主页按钮)

对于“关闭”的任何典型定义,这不会“关闭应用程序”。在桌面操作系统中,最接近的类比是最小化应用程序。

  

我怎样才能确保每次打开应用程序onCreate()时都会执行?

你没有。相反,您使用更合适的其他lifecycle methods,例如onStart(),它们将在onCreate()(首次创建活动时)之后调用当活动从后台回到前台时。

答案 1 :(得分:1)

我知道你希望每次应用程序打开时都会调用onCreate()但不会。这是因为当您再次打开它时,您的应用仍会处于最新状态。

  1. 当你在app中已经存在app时打开它,你的onStart()会被调用。尝试在onStart()中添加逻辑。
  2. 如果您希望每次只调用onCreate(),则必须在按下home时从最近删除。为此,您需要对Manifest for the活动进行更改。请尝试使用以下内容进行Manifets中的活动:

    机器人:clearTaskOnLaunch ="真"

    机器人:finishOnTaskLaunch ="真"

答案 2 :(得分:0)

我已将System.exit(1)放入onStop()函数中。从最近的应用打开应用后,它会运行onCreate()

所以这对我有用。

答案 3 :(得分:-1)

只需拨打onResume这就行了。

@Override
protected void onResume() {
    super.onResume();
    // TODO: do what ever you want 
}

查看此网站:Activity-lifecycle concepts