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