我的应用程序的第一个 Activity 是启动屏幕,其中显示一些动画,同时使用 AsyncTask 在后台线程中进行一些加载。 后台加载完成后,我想开始一个新的 Activity 。正确的方法是什么?
- 直接从 AsyncTask 类的 onPostExecute 方法启动新 Activity 。
- 在开始新 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/