我有一个应用程序打开ACTION_WEB_SEARCH意图打开搜索应用程序。它第一次工作正常,但如果再次启动活动,搜索参数不会改变。
public static void launchWebSearch(Context context, String query) {
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY, query);
context.startActivity(intent);
}
以上代码将首次打开带有查询的Google搜索应用。下次调用它时,它仍将打开谷歌搜索应用程序,但查询不会更改,仍然会有旧的搜索结果。
答案 0 :(得分:1)
我也无法重现你的错误;我怀疑问题可能在您的代码中的其他位置。
只是在黑暗中拍摄,但您可能想尝试在您的意图中添加以下标志:
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
答案 1 :(得分:1)
我认为唯一可能导致此问题的是处理ACTION_WEB_SEARCH
意图的活动的错误实现(例如声明为singleInstance
或singleTop
而未实施{{1 }})。可能三星设备附带定制版本的搜索应用程序?
我建议您使用onNewIntent()
查看PackageManager.queryIntentActivities()
是否还有其他匹配项。
答案 2 :(得分:1)
面临同样的问题,
经过一番挖掘后,我发现从“谷歌搜索”中卸载更新解决了这个问题,所以这确实与Google Now(Google Quicksearch,股票版本,完美无缺)有关。
我通过在搜索意图中添加以下标志来修复它:
Intent search = new Intent(Intent.ACTION_WEB_SEARCH);
search.putExtra(SearchManager.QUERY, query);
// In the latest Google Now version, ACTION_WEB_SEARCH is broken when used with FLAG_ACTIVITY_NEW_TASK.
// Adding FLAG_ACTIVITY_CLEAR_TASK seems to fix the problem.
search.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
search.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);