Android活动任务在前台

时间:2013-03-18 17:02:05

标签: android android-activity launch activity-stack

我有3个活动任务A-B-C

<activity android:name=".LoginActivity"
    android:label="@string/app_name"
    android:noHistory="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>
<activity android:name=".DashboardActivity"
              android:label="@string/app_name" >
</activity>
<activity android:name=".CreateNewPolygonActivity"
              android:label="@string/app_name"
              android:launchMode="singleTask"
              android:alwaysRetainTaskState="true"
              android:configChanges="orientation|keyboard|keyboardHidden">
</activity>
<service android:name=".services.RecordCircuitService"
             android:enabled="true" >
</service>

我使用Service进行GPS LocationManager

我的申请有这样的逻辑:

  1. 点击启动器图标 - &gt;开始登录活动
  2. 登录后 - &gt;登录活动是finish();并启动dashboardActivity
  3. 在信息中心内,我启动CreateNewPolygonActivity并使用GPS
  4. 启动Service
  5. 按HOME(这会将RecordActivity重新组织为前景)
  6. 我犯了一些错误之后

    1. 使用CreateNewPolygonActivity
    2. 打开onCreate
    3. 打开DashboardActivity
    4. 我认为我的任务组织存在问题。

1 个答案:

答案 0 :(得分:0)

通过为您的活动设置launchMode="singleTask",您将无法获得所需的结果。 Android不会为此创建单独的任务,因为您没有设置taskAffinity。在任何情况下,您都不希望使用launchMode="singleTask"来执行此操作,因为这会导致比解决的问题更多的问题。此启动模式仅适用于HOME屏幕替换!

删除launchMode="singleTask"`` from CreateNewPolygonActivity`

此外,您应该从登录活动中删除android:noHistory="true"。这也不是必需的。由于您在用户启动DashboardActivity时已经完成了登录活动,当他按下BACK按钮时,它将不会返回登录活动(我认为这是您想要的)。

一旦你完成了这些事情,请告诉我们什么仍然存在。