私のAndroidアプリには、アプリケーションへのエントリポイントとして機能するメインアクティビティがあります。これは、マニフェストファイルで次のように構成されています。
<activity android:name=".Main"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:alwaysRetainTaskState="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
したがって、特定のユースケースでは、ユーザーがアプリケーションランチャー内のアイコンをクリックしてホーム画面からアプリを起動するとします。アプリを起動した後、ユーザーはメインアクティビティからアクティビティAに移動し、最後にアクティビティBに移動します。この時点で、ユーザーはFacebookを確認することにしたので、ホームボタンをクリックしてアプリをバックグラウンドに置き、起動します。 Facebookアプリ。
Facebookを確認した後、ユーザーは私のアプリに戻りたいので、ホームキーを押して、アプリケーションランチャーからアプリケーションを起動します(最初に起動したときと同じように)。
ユーザーがアプリに戻ったときに、アプリがバックグラウンドに置かれたときにユーザーが最後に行ったアクティビティ(この場合はアクティビティB)にアプリを戻すようにします。マニフェストファイルでは、alwaysRetainTaskState=trueを設定しました。 OSが私のアプリのアクティビティを強制終了しないようにするため。
さて、私の質問です。上記の動作をどのように取得しますか?アプリのアイコンをクリックすると、何があっても常にメインアクティビティから始まります。これはcategory.LAUNCHER属性によるものだと思います。android:launchMode = singleTaskを試しましたが、違いはありません。常にメインから始まります。
誰かがインテントフィルター、起動モード、およびタスクを明確にすることができれば、それは素晴らしいことです!