Android - 当应用程序在后台时启动一个新 Activity

标签 android android-asynctask android-activity

我的应用程序的第一个 Activity 是启动屏幕,其中显示一些动画,同时使用 AsyncTask 在后台线程中进行一些加载。 后台加载完成后,我想开始一个新的 Activity 。正确的方法是什么?

  1. 直接从 AsyncTask 类的 onPostExecute 方法启动新 Activity 。
  2. 在开始新 Activity 之前检查当前 Activity 是否显示:
    • 如果显示当前 Activity,则启动新 Activity。
    • 如果当前 Activity 显示,请使用标志( bool 值)并在onResume方法期间检查该标志,以便在此处启动新 Activity 。<

我主要关心的是:

如果我的应用程序进入后台(由于来电、按下 Home 键等)并且后台线程 (AsyncTask) 完成执行,并且从 onPostExecute< 启动一个新 Activity/strong> 方法,而我的应用程序仍在后台:会发生什么?

  • 当我的应用程序再次可见时,新 Activity 是否会立即开始?

最佳答案

我遇到了类似的情况:我的应用程序进入后台,一段时间后应用程序开始显示另一个 Activity 的 Intent 。但是,应用程序的行为现在取决于它运行的操作系统:

  • 在 4.4 之前的设备上,应用会静默打开新 Activity 并保持在后台。当用户恢复应用程序时,系统会提示他执行第二个 Activity 。

  • 在 4.4 设备上(在 4.4.2 和 4.4.4 上测试)应用打开第二个 Activity,但 3-4 秒后,应用弹出到前台,中断用户。

希望对大家有帮助。我仍在寻找第二种情况的解决方案,以防止应用程序弹出到前台。

关于Android - 当应用程序在后台时启动一个新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14254598/

相关文章:

android - 我的图像缓存进程会泄漏内存吗?

java - 如何在单独的 View 中获取 TextView 的 OnClick 事件?

Android Studio Gradle 同步失败

android - 在 Android 中使用 PackageManager 时出错

java - 在 AsyncTask 执行方法中传递单选按钮代码

android - 在 Android 中每 1 秒有效地在后台运行我的代码

android - onPostExecute 无法正确启动 Activity

android - 该类型未定义方法 findViewById(int)

java - 将字符串从一个 fragment 传递到另一个 fragment

java - Android 应用程序 - 保存状态