5

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

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

4

0 回答 0