如何保存用户选择的意图?

时间:2014-05-27 07:32:12

标签: java android eclipse class android-intent

所以我正在构建一个启动器,我需要一种保存Intent的方法。 我使用以下代码获取已安装应用程序的列表,用户可以在其中选择要运行的应用程序。

代码 -

         final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
         mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
         final List pkgAppsList = getActivity().getPackageManager().queryIntentActivities( mainIntent, 0);
         startActivity(Intent.createChooser(mainIntent, "Choose your default app"));

但我有几个按钮,我正在使用此方法让用户选择要运行的应用程序。但问题是我希望用户保存这些选项,例如,当我点击时钟按钮时,它让我选择我要运行的应用程序,然后保存。但我不知道如何。

此外我确实找到了一种方法,我只是删除了“Intent.createChooser();”以便我可以选择“使用默认值”,但是当您将其设置为默认值时,您按下的任何其他按钮(例如日历按钮) ,它打开时钟按钮。

我已经对意图进行了大量的研究,并且已经完成了所有这些工作,但我发现上面很难做到这一点,如果你知道一种制作App Chooser的方法,那么用户可以选择哪个应用程序按下按钮时启动,然后保存该意图,这样用户就不必继续选择。

感谢您的时间,希望我能以良好的方式询问所有事情。

1 个答案:

答案 0 :(得分:0)

我建议保存用户想要的应用程序包名称作为默认值。

要执行此操作,您应该分别调用Intent.createChooserstartActivity,然后在这两个调用之间,将包保存在intent中。例如:

Intent intent = Intent.createChooser(...);
String packageName = intent.getPackage();//you might have to play around with the name of the method here.... it is not clear from the docs whether this returns what you want
String action = intent.getAction();//this will return the action that the user wants to preform - this needs to be saved too, so you know when to display the choosing dialog again and when not to
saveChoice(action, packageName);
startActivity(...)