当 YouTube 应用已经 运行 时,Youtube 动作搜索意图似乎不起作用
Youtube action search intent does not seem to work when the YouTube app is already running
在我的 Android 应用程序中,我有一个可以点击的 YouTube 搜索查询列表:
query1 [button]
query2 [button]
query3 [button]
每当用户点击一个这样的按钮时,下面的代码就是运行:
private void sendSearchOnYoutubeIntent(String query){
Intent intent = new Intent(Intent.ACTION_SEARCH);
intent.setPackage("com.google.android.youtube");
intent.putExtra("query", query);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
}
当点击例如query1
,YouTube 应用程序启动并正确搜索 query1
。如果我随后导航回我的应用程序并单击 query2
,YouTube 应用程序将返回前台,但仍会显示对 query1
的搜索。只有当我手动关闭 YouTube 应用程序然后按下 query2
时,搜索才会正确执行。
为什么会这样?我可以通过某种方式解决这个问题,还是 YouTube 应用程序本身有问题?
你需要使用标志 Intent.FLAG_ACTIVITY_CLEAR_TOP
其他一切都很好。
private void sendSearchOnYoutubeIntent(String query){
Intent intent = new Intent(Intent.ACTION_SEARCH);
intent.setPackage("com.google.android.youtube");
intent.putExtra("query", query);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
在我的 Android 应用程序中,我有一个可以点击的 YouTube 搜索查询列表:
query1 [button]
query2 [button]
query3 [button]
每当用户点击一个这样的按钮时,下面的代码就是运行:
private void sendSearchOnYoutubeIntent(String query){
Intent intent = new Intent(Intent.ACTION_SEARCH);
intent.setPackage("com.google.android.youtube");
intent.putExtra("query", query);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
}
当点击例如query1
,YouTube 应用程序启动并正确搜索 query1
。如果我随后导航回我的应用程序并单击 query2
,YouTube 应用程序将返回前台,但仍会显示对 query1
的搜索。只有当我手动关闭 YouTube 应用程序然后按下 query2
时,搜索才会正确执行。
为什么会这样?我可以通过某种方式解决这个问题,还是 YouTube 应用程序本身有问题?
你需要使用标志 Intent.FLAG_ACTIVITY_CLEAR_TOP
其他一切都很好。
private void sendSearchOnYoutubeIntent(String query){
Intent intent = new Intent(Intent.ACTION_SEARCH);
intent.setPackage("com.google.android.youtube");
intent.putExtra("query", query);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}