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