我的应用程序的第一个活动是启动画面,其中显示一些动画,而使用 AsyncTask 在后台线程中进行一些加载。 一旦完成后台加载,我想开始一个新的活动。这样做的正确方法是什么?
如果我的应用程序转到后台(由于来电,主页按键,...)和后台线程(AsyncTask)已完成执行,则从 onPostExecute <启动新活动/ strong>方法,而我的应用程序仍然在后台:会发生什么?
答案 0 :(得分:2)
我遇到了类似的情况:我的应用程序转到后台,一段时间后应用程序开始显示另一个活动的意图。但是,应用程序的行为现在取决于它正在运行的操作系统:
该应用程序会以静默方式打开新活动并保留在后台。当用户恢复应用程序时,系统会提示他第二个活动。
(在4.4.2和4.4.4上测试)应用程序打开第二个活动,但3-4秒后,应用程序弹出前景,使用户间隔干扰。
希望它可以帮助任何人。我还在为第二种情况寻找解决方案,以防止应用程序弹出到前台。
答案 1 :(得分:1)
根据我的经验,我正在回答你的问题
<强>问题1 强>
如果您使用AsyncTask,则必须在OnPostExecute()
中启动新活动。根据我的经验,这是正确的做法。
<强>问题2 强>
当您按住主页键或接听电话时。您的活动将进入后台,直到您通过按后退按钮退出应用程序(此时您的应用程序退出)。因此,当您返回应用程序时,如果后台处理完成,您的新活动将会显示。否则,您将看到启动闪屏。
答案 2 :(得分:0)
我认为这取决于android的操作系统。它为每个组件定义了一些内置的优先级模型。
看看commonsware给出的答案。
change process priority in android
这简要介绍了组件的优先级。