Android -启动一个新的活动,而应用程序是在后台



我的应用程序的第一个活动是一个闪屏,其中一些动画显示,而一些加载发生在后台线程使用AsyncTask。一旦在后台加载完成,我想开始一个新的活动。正确的做法是什么?

  1. 直接从AsyncTask类的onPostExecute方法启动一个新活动。
  2. 在开始新活动之前检查当前活动是否显示:
    • 如果显示当前活动,则启动新活动。
    • 如果当前活动是显示,使用一个标志(布尔),并检查标志在onResume方法,以启动新的活动在那里。

我主要关心的是:

如果我的应用程序进入后台(由于传入电话,按home键,…)和后台线程(AsyncTask)完成执行,一个新的活动是从onPostExecute方法开始的,而我的应用程序仍然在后台:会发生什么?

  • 当我的应用程序再次可见时,新的activity会直接启动吗?

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

  • 在pre 4.4设备上应用程序静默打开新活动并保持在后台。当用户恢复应用程序时,他已经被提示第二个活动。

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

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

根据我的经验,我正在回答你的问题

问题1

如果你使用AsyncTask,你必须在OnPostExecute()中启动新的活动。根据我的经验,这是正确的做法。

问题2

当你按home键或接电话时。你的活动将进入后台,直到你按下后退按钮退出应用程序(此时你的应用程序退出)。当你回到你的app你的新activity会是可见的如果后台进程完成了。否则,您将看到启动屏幕

我认为这取决于android的操作系统。它为每个组件定义了一些内置的优先级模型。

看commonsware给出的答案

change process priority in android

给出了组件优先级的简要概念。

相关内容

  • 没有找到相关文章

最新更新