Android Activity Task in foreground



我有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. 在启动器图标点击->开始登录活动
  2. login -> login activity is finish();并启动dashboardActivity
  3. 在仪表板中,我启动CreateNewPolygonActivity并启动Service与GPS
  4. 按HOME键(这是将RecordActivity重新组织到前台)

后我有一些错误的工作

    open CreateNewPolygonActivity with onCreate
  1. open DashboardActivity

我想我在任务组织方面有问题。

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

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

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

一旦你完成了这些事情,请告诉我们还有什么地方坏了

最新更新