我有两个活动,我希望他们各自维护自己的搜索历史建议。那可能吗?他们每个人都有自己的搜索建议提供者,但我看到两个活动都出现了相同的搜索历史:
// 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