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. ログイン後 - > ログイン アクティビティは finish(); です。そして、dashboardActivity を開始します
  3. ダッシュボードで、GPSを起動CreateNewPolygonActivityして起動しますService
  4. HOMEを押します(これはRecordActivityフォアグラウンドに再編成されます)

私はいくつかの間違いが働いた後

  1. CreateNewPolygonActivityで開くonCreate
  2. 開いたDashboardActivity

タスクの編成に問題があると思います。

4

1 に答える 1

0

launchMode="singleTask"アクティビティを設定しても、望ましい結果は得られません。を設定していないため、Android はこのための別のタスクを作成しませんtaskAffinitylaunchMode="singleTask"いずれにせよ、これは解決するよりも多くの問題を引き起こすため、を使用してこれを行うことは望ましくありません。この起動モードは、ホーム画面の置き換えのみを目的としています。

launchMode="singleTask"`` fromCreateNewPolygonActivity を削除します`

また、android:noHistory="true"ログイン アクティビティから削除する必要があります。これも必要ありません。ユーザーが DashboardActivity を開始したときにすでにログイン アクティビティが終了しているため、[戻る] ボタンを押しても、ログイン アクティビティには戻りません (これはあなたが望んでいたことだと思います)。

これらの作業を完了したら、まだ壊れているものを教えてください。

于 2013-03-18T17:10:54.140 に答える