java - Android应用程序中确定onCreate() VS onRestartingFromBackGround()

标签 java android oncreate

我正在设计的 Android 应用程序遇到了一个小问题。

每当这两个事件发生时,我都需要运行一些代码:

1.  The app is NOT running in the background, so the user launches it.
2.  The app IS already running in the background, so the user is really 
    just re-opening it.
(I only need to run the code once, not twice.)

无论我在哪里调用代码(onCreate、onStart、onRestart、onResume 等),我总是会产生不良影响:

A. My code gets run twice when #2 happens.
B. My code runs even when the user is just moving from 
   MAIN to a SUB-ACTIVITY, then back to MAIN again.
C. My code doesn't run at all.

我可以区分一下 onCreate() 和 onRestartingFromBackGround() 吗?

我以为我可以使用 onRestart(),但我非常惊讶地发现 onRestart() 即使在我执行 #B 时也会运行。 (#B 真的被认为是我的应用程序的“重启”吗???)

最佳答案

从纯java的角度来看,您可以在第一次按下图标时使用加载线程。此加载线程可以轮询手机以查看主 Activity 线程当前是否正在运行,然后从加载线程移至正确的代码段。对于 ANDROID,我认为您将轮询进程名称或进程 ID...有人曾经轮询操作系统中的进程吗?

关于java - Android应用程序中确定onCreate() VS onRestartingFromBackGround(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9779741/

相关文章:

java - 在 Java 中使用 foreach 循环派生类

java - 需要帮助来制作一个好的 Robocode 机器人

java - 切换 Activity 时崩溃

android - OnCreate 方法不断被重复调用

java - C-DLL 中的回调函数转换为 java JNA

java - Python中通过py4j在Java corenlp情感评分程序中编译错误

java - TypedArray .getColor() 在自定义 View 中总是返回 -1

android - 在 Android 上生成和导出 RSA key 对

android - 在android中 Activity 动画结束后如何调用函数

android - OnCreate 而不是 OnResume/OnRestart?