Android活动流程开始时

时间:2011-11-01 16:24:40

标签: android android-activity

假设我有一些活动A,B和C.

活动A在应用程序启动时运行。它应该在后台自动执行asyntask以基于imei登录服务器,同时启动服务。如果登录失败,活动A将有一个刷新按钮,供用户重新运行asyn任务。登录完成后,活动将由finish()完成并流向B然后流向C.

面临着2个问题。

  1. 如果用户通过应用程序菜单重新运行应用程序,任何时间点,活动A将再次运行,导致不必要的登录和运行某些后台服务。

  2. 在活动C,当我按Back键返回B然后返回后返回主菜单,这是正确的。然而,当我按下主页按钮并选择返回应用程序时,应用程序再次重新运行活动A.

3 个答案:

答案 0 :(得分:0)

在您的清单文件中

,将您的启动器活动设置为“单任务”

android:launchMode="singleTask"

答案 1 :(得分:0)

我从你的应用程序中了解一件事......应用程序从屏幕A流动(登录) - >到屏幕B,然后到屏幕C ...应用程序无法直接传播到屏幕C.

现在......在应用程序的最开始,您可以拥有一个存储的数据来检查您是否已经登录并且您想要的后台线程已经完成。一旦检查了..你可以手动重新设计一个新的意图来屏幕B ....我认为这回答了第一点。

第二......我认为重启应用程序是正常的行为,如果那是你想要在暂停和onStop方法中存储应用程序的状态,以便应用程序从你离开的地方开始..

答案 2 :(得分:0)

Ur第二个问题有一个确定的解决方案。在ur launcher activity ::

中添加此标记
      android:alwaysRetainTaskState="true"

...干杯!!!