我有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
。
我的申请有这样的逻辑:
CreateNewPolygonActivity
并使用GPS Service
RecordActivity
重新组织为前景)我犯了一些错误之后
CreateNewPolygonActivity
onCreate
DashboardActivity
我认为我的任务组织存在问题。
答案 0 :(得分:0)
通过为您的活动设置launchMode="singleTask"
,您将无法获得所需的结果。 Android不会为此创建单独的任务,因为您没有设置taskAffinity
。在任何情况下,您都不希望使用launchMode="singleTask"
来执行此操作,因为这会导致比解决的问题更多的问题。此启动模式仅适用于HOME屏幕替换!
删除launchMode="singleTask"`` from
CreateNewPolygonActivity`
此外,您应该从登录活动中删除android:noHistory="true"
。这也不是必需的。由于您在用户启动DashboardActivity时已经完成了登录活动,当他按下BACK按钮时,它将不会返回登录活动(我认为这是您想要的)。
一旦你完成了这些事情,请告诉我们什么仍然存在。