为不同的活动保留不同的搜索历史记录?

时间:2011-12-14 19:02:09

标签: android android-searchmanager

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

// 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

0 个答案:

没有答案