私には 2 つの活動があり、それぞれに独自の検索履歴の提案を維持してもらいたいと考えています。それは可能ですか?それぞれに独自の検索候補プロバイダーがありますが、両方のアクティビティで同じ検索履歴が表示されます。
// manifest.xml
<activity
android:name="ActivityA"
...
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable_A" />
</activity>
<activity
android:name="ActivityB"
...
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable_B" />
</activity>
// searchable_A.xml
<searchable
android:searchSuggestAuthority="providerA" />
// searchable_B.xml
<searchable
android:searchSuggestAuthority="providerB" />
検索候補を保存するときは、アクティビティごとに正しいプロバイダーを使用するようにしています。
// ActivityA.java
SearchRecentSuggestions suggestions = new SearchRecentSuggestions(ActivityA.this,
providerA.AUTHORITY, providerA.MODE);
suggestions.saveRecentQuery(...);
// ActivityB.java
SearchRecentSuggestions suggestions = new SearchRecentSuggestions(ActivityB.this,
providerB.AUTHORITY, providerB.MODE);
suggestions.saveRecentQuery(...);
検索候補プロバイダーが異なるため、それぞれが異なる履歴を維持することを期待していました。ここでの使用例は、Activity
車Activity
専用と食品専用があります。過去の検索用語を混ぜてほしくありません。異なる文脈では意味がありません。
http://developer.android.com/guide/topics/search/adding-recent-query-suggestions.html