我目前正在开发一个必须启动其他应用程序(YouTube 等)才能执行搜索查询的 android 应用程序。我已成功通过以下代码向其他应用程序发送搜索查询:
searchIntent = new Intent(Intent.ACTION_SEARCH);
searchIntent.putExtra("query", searchPhrase);
searchIntent.setPackage(packageName); //Youtube package name, etc
startActivity(searchIntent);
不幸的是,当查询的应用程序继续运行并执行另一个查询时,它只是重新启动原始查询,无法执行另一个搜索。
例如:我启动了一个名为“小狗”的 YouTube 搜索意图。然后,我将该 YouTube 实例作为背景,并启动另一个名为“小猫”的搜索意图。启动第二个意图后,YouTube 的同一实例将启动并继续在搜索栏中显示“小狗”。
我曾尝试使用各种标志(FLAG_ACTIVITY_NEW TASK、FLAG_ACTIVITY_CLEAR_TOP 等)来解决这个问题。
有谁知道我可以如何在启动的活动中重置搜索查询,以便可以执行第二次搜索而不必终止活动实例(后退按钮或其他)?
提前感谢你的帮助!
编辑:我发现这个问题特定于从服务启动的意图。如果 Intent 是从一个 Activity 启动的,启动的应用程序会无缝过渡到启动的应用程序,并且被迫按下后退按钮以返回到启动的应用程序。不幸的是,我试图从 IntentService 启动这个意图,因此我遇到了这个问题。