2

アプリに検索機能があります。検索バーが「表示アクティビティ」から呼び出され、ユーザーが検索を実行すると、表示アクティビティを終了してユーザーを検索アクティビティに移動させたいと考えています。検索が実行されたために SearchManager.onDismissListener が呼び出されたかどうかを知る方法はありますか?

私が避けたいのは、検索結果>表示>検索結果>表示などの複数の画面を表示し、検索が実行されるたびに検索結果に「戻る」ことです。したがって、検索アクティビティと表示アクティビティは1つだけです一度にスタックします。

4

1 に答える 1

2

あなたの質問を正しく理解できれば、検索アクティビティが複数回作成されないようにする必要があります。

Android ドキュメントのアクティビティ ライフサイクルに対する検索ダイアログの影響には、必要な説明があります。

基本的に、マニフェストで検索可能なアクティビティを定義するときに設定android:launchModeする必要があります。"singleTop"リンクの例から、次のようになります。

    <activity android:name=".SearchableActivity"
              android:launchMode="singleTop" >
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>
        <meta-data android:name="android.app.searchable"
                   android:resource="@xml/searchable"/>
    </activity>

onCreateただし、 andを使用してインテントを処理するためのアドバイスに従うように注意しonNewIntentてください。ここで重複するのではなく、そのリンクを参照してください。

ショーのアクティビティについても同じことができますandroid:launchMode="singleTop"

于 2011-05-09T21:22:02.623 に答える