2

何度開いても一度だけ存在させたいアクティビティがあります。以前は、launchMode singleTask を使用していましたが、すべてうまく機能していました。ただし、onActivityResult を使用する必要がありますが、これは何らかの理由で launchMode singleTask と互換性がありません。

どちらかが行うことを複製する方法を知っていますか。

4

2 に答える 2

3

私の 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 //
}

他のアクティビティで結果を設定していると思います...

あなたのコードと私のコードをクロスチェックして、問題が見つかるかどうか見てみましょう。

  • オーバーライドするときは、onActivityResult が「保護」されていることを確認してください。

お役に立てれば

-セルカン

于 2011-10-01T04:18:12.950 に答える
1

FLAG_ACTIVITY_REORDER_TO_FRONTを使用できます。これにより、新しいインスタンスを作成する代わりに、起動されたアクティビティがタスクのスタックの前面に移動します。

結果は、startActivityForResult を呼び出した最初のアクティビティに配信されることに注意してください。この回答は、これがどのように機能するかの良い例を提供します。

于 2012-07-28T01:12:02.067 に答える