当我必须使用Intents时,createChooser是什么?我能用这种方法做什么?

时间:2012-04-24 08:26:02

标签: android android-intent

我一直在查看stackoverflow但是我没有找到关于什么是“createChooser”的定义以及为什么我可以使用它并且在某种情况下使用它是好的。

提前致谢。

3 个答案:

答案 0 :(得分:23)

例如:您的应用程序中有一个共享图片选项。

您可以定义这样的意图:

Intent picMessageIntent = new Intent(android.content.Intent.ACTION_SEND);
picMessageIntent.setType("image/jpeg");

File downloadedPic =  new File(
    Environment.getExternalStoragePublicDirectory(
    Environment.DIRECTORY_DOWNLOADS),
    "q.jpeg");

picMessageIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(downloadedPic));

比你打电话时:

startActivity(picMessageIntent);  

将列出手机上能够获取此照片的所有应用程序。

如果您想要推荐该列表的标题,可以像这样使用createChooser:

startActivity(Intent.createChooser(picMessageIntent, "Send your picture using:"));

enter image description here

答案 1 :(得分:5)

首次从您的应用程序调用startActivity(intent)时,用户会看到所有能够处理此意图的应用程序列表。

还可以使用列表中的某个应用程序始终处理此意图。如果使用此选项,则列表将永远不会再次显示。

如果你在意图中使用createChooser,那么"总是使用这个应用程序"选项未显示。用户始终会看到此列表。

答案 2 :(得分:1)

当您想要使用Intent创建自定义动作时使用此方法...就像android提供ACTION_VIEW等...但是当有多个选项来执行Action时,此选择器将打开一个对话框,其中包含所有可用选项,让用户选择一个...这里是example