Android-在应用程序处于后台时启动新活动
我的应用程序的第一个活动是启动屏幕,其中显示一些动画,同时使用AsyncTask在后台线程中进行一些加载。 在后台加载完成后,我想开始一个新的活动。正确的方法是什么Android-在应用程序处于后台时启动新活动,android,android-asynctask,android-activity,Android,Android Asynctask,Android Activity,我的应用程序的第一个活动是启动屏幕,其中显示一些动画,同时使用AsyncTask在后台线程中进行一些加载。 在后台加载完成后,我想开始一个新的活动。正确的方法是什么 直接从AsyncTask类的onPostExecute方法启动新活动 在开始新活动之前,检查是否显示当前活动: 如果显示当前活动,则启动新活动 如果当前活动为非显示,则使用标志(布尔值)并在onResume方法期间检查标志,以便在那里启动新活动 我主要关注的是: 如果我的应用程序转到后台(由于来电、按home键等),后台线程(A
- 如果显示当前活动,则启动新活动
- 如果当前活动为非显示,则使用标志(布尔值)并在onResume方法期间检查标志,以便在那里启动新活动
- 当我的应用程序再次可见时,新活动是否会立即开始
根据我的经验,我正在回答你的问题 问题1 如果使用AsyncTask,则必须在
OnPostExecute()
中启动新活动。根据我的经验,这是正确的做法
问题2
当您按home键或接听电话时。您的活动将进入后台,直到您按“后退”按钮退出应用程序(此时您的应用程序已退出)。所以,当你们回到你们的应用程序时,若后台进程完成,你们的新活动将可见。否则您将看到启动屏幕。我认为这取决于android的操作系统。它为每个组件定义了一些内置的优先级模型 看看Commonware给出的答案
这给出了组件优先级的简要概念。我遇到了类似的情况:我的应用程序进入后台,一段时间后,应用程序启动了一个意图,显示另一个活动。但是,应用程序的行为现在取决于其运行的操作系统:
- 在4.4之前版本的设备上应用程序将以静默方式打开新活动并保持在后台。当用户恢复应用程序时,系统会提示他已经执行了第二个活动
- 在4.4设备上(在4.4.2和4.4.4上测试)应用程序打开第二个活动,但3-4秒后,应用程序弹出到前台,询问用户
希望它能帮助任何人。我仍在寻找第二种情况的解决方案,以防止应用程序突然出现在前台 谢谢你的及时答复。我尝试在onPostExecute中启动新的活动,效果非常好。然而,这不是我想要的行为,尽管如此,这是一个正确的答案。谢谢你关于运行安卓4.4的设备的回答,我不知道。在开始新活动之前,您可以检查您的应用程序是否在前台?