何度開いても一度だけ存在させたいアクティビティがあります。以前は、launchMode singleTask を使用していましたが、すべてうまく機能していました。ただし、onActivityResult を使用する必要がありますが、これは何らかの理由で launchMode singleTask と互換性がありません。
どちらかが行うことを複製する方法を知っていますか。
何度開いても一度だけ存在させたいアクティビティがあります。以前は、launchMode singleTask を使用していましたが、すべてうまく機能していました。ただし、onActivityResult を使用する必要がありますが、これは何らかの理由で launchMode singleTask と互換性がありません。
どちらかが行うことを複製する方法を知っていますか。
私の Main アクティビティも singleTask ですが、確かに Main アクティビティからActivitiesForResults を開始し、結果を取得しています。
これが私のマニフェスト宣言です:
<activity
android:name=".activities.Main"
android:theme="@android:style/Theme.Light"
android:screenOrientation="portrait"
android:launchMode="singleTask"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
ここに私の onActivityResult があります:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
super.onActivityResult(requestCode, resultCode, intent);
// blah blah checking if if the requestCode and resultCode are good //
}
他のアクティビティで結果を設定していると思います...
あなたのコードと私のコードをクロスチェックして、問題が見つかるかどうか見てみましょう。
お役に立てれば
-セルカン
FLAG_ACTIVITY_REORDER_TO_FRONTを使用できます。これにより、新しいインスタンスを作成する代わりに、起動されたアクティビティがタスクのスタックの前面に移動します。
結果は、startActivityForResult を呼び出した最初のアクティビティに配信されることに注意してください。この回答は、これがどのように機能するかの良い例を提供します。