0

我有 3 个活动任务 ABC

<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. 单击启动器图标 - > 开始登录活动
  2. 登录后 - > 登录活动是完成();并启动dashboardActivity
  3. 在仪表板中,我开始CreateNewPolygonActivity使用ServiceGPS
  4. 按 HOME(这是重新组织RecordActivity到前台)

在我有一些错误之后工作

  1. 打开CreateNewPolygonActivityonCreate
  2. 打开DashboardActivity

我认为我的任务组织有问题。

4

1 回答 1

0

launchMode="singleTask"通过设置您的活动不会达到预期的结果。Android 不会为此创建单独的任务,因为您尚未设置taskAffinity. 在任何情况下,您都不想通过使用来做到这一点,launchMode="singleTask"因为这会导致比它解决的问题更多的问题。此启动模式仅适用于主屏幕更换!

删除launchMode="singleTask"`` fromCreateNewPolygonActivity`

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

一旦你完成了这些事情,请告诉我们还有什么问题。

于 2013-03-18T17:10:54.140 回答