这是我的用例:
该应用程序从登录屏幕开始。您输入您的凭据并点击“登录”按钮。然后出现一个进度对话框,你等待一些东西下载。一旦这些东西下载完毕,你就会被带到一个新的活动中。具体到哪个活动取决于服务器响应。我可以在没有任务进入前台的情况下为特定任务创建活动吗?
这里是我的问题:
如果在此登录/下载过程回家,在不久的将来,您的下载将完成一些点,并且将调用startActivity()
。 那么新的活动将被推到前台,粗暴地中断用户。在我开始下载之前,我无法启动活动,因为正如我前面提到的那样,我开始的活动取决于下载的结果。
我显然不喜欢像这样打断用户。解决这个问题的一个方法是避免调用startActivity()
,直到用户返回到应用程序。我可以通过跟踪LoginActivity的onStop()
和onRestart()
来做到这一点。 但我想知道,有没有什么办法可以在后台创建活动?这样用户返回到应用程序,他准备去...否则他将不得不等待新的活动创建(这可能需要一些时间,因为新的活动也必须下载和显示一些数据)。
更新: 猜猜是什么?我撒了谎!我可以发誓说,开始这项活动正在使它前来,但我又回过头来再次测试,问题已经神奇地消失了。我在1.6和2.0.1都测试过,两个操作系统都足够聪明,不会把后台任务带到前台。
我不使用服务,它只是一个简单的'AsyncTask'。让用户从通知开始活动与开始活动后返回到应用程序的活动相同。所以它不能很好地解决我的问题,但通知可能是一个很好的奖励,所以感谢这个想法。 – 2010-03-17 19:07:57
那么,如果你希望用户能够关闭该活动,同时仍然在下载,我想你应该使用一个'服务'的下载! – MrSnowflake 2010-03-19 10:24:42