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

Jua*_*nez 19 android android-intent

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

提前致谢.

Nes*_*zon 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));
Run Code Online (Sandbox Code Playgroud)

比你打电话时:

startActivity(picMessageIntent);  
Run Code Online (Sandbox Code Playgroud)

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

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

startActivity(Intent.createChooser(picMessageIntent, "Send your picture using:"));
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Ano*_*ous 5

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

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

如果您在意图中使用createChooser,则不会显示"始终使用此应用程序"选项.用户始终会看到此列表.

  • “如果您在意图中使用 createChooser,则不会显示“始终使用此应用程序”选项。用户始终会看到此列表。” 这是非常关键的观察。非常感谢! (2认同)