我有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
。
我的应用程序有这样的逻辑:
- 在启动器图标点击->开始登录活动
- login -> login activity is finish();并启动dashboardActivity
- 在仪表板中,我启动
CreateNewPolygonActivity
并启动Service
与GPS - 按HOME键(这是将
RecordActivity
重新组织到前台)
后我有一些错误的工作
- open
- open
DashboardActivity
CreateNewPolygonActivity
with onCreate
我想我在任务组织方面有问题。
您将无法通过为您的活动设置launchMode="singleTask"
来实现所需的结果。Android不会为此创建单独的任务,因为您没有设置taskAffinity
。在任何情况下,您都不希望通过使用launchMode="singleTask"
来做到这一点,因为这会导致比它解决的问题更多的问题。此启动模式仅用于替换主屏幕!
删除launchMode="singleTask"`` from
CreateNewPolygonActivity '
另外,您应该从登录活动中删除android:noHistory="true"
。这也没有必要。因为当用户启动DashboardActivity时,您已经完成了登录活动,所以当他按下BACK按钮时,它不会返回到登录活动(我假设这是您想要的)。
一旦你完成了这些事情,请告诉我们还有什么地方坏了