当 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);
    }