IntentSender的目的是什么?

我想知道我们的应用程序的IntentSender类的目的是什么? 我们如何在我们的应用程序中使用它?

除了基于Android Intent的API:第七部分 – IntentSenders和PendingIntents之外,还有什么好的例子吗?

Solutions Collecting From Web of "IntentSender的目的是什么?"

IntentSender是一种抽象或胶水类,允许你

  1. 用户在select器中select应用程序时接收广播。

    使用IntentSender时的IntentSender

     Intent intent = new Intent(Intent.ACTION_SEND) .putExtra(Intent.EXTRA_TEXT, "This is my text to send.") .setType("text/plain"); Intent receiver = new Intent(this, BroadcastTest.class) .putExtra("test", "test"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT); Intent chooser = Intent.createChooser(intent, "test", pendingIntent.getIntentSender()); startActivity(chooser); 
  2. 使用IntentSender而不是Intent启动Activity (更多Android文档 )

    startIntentSender(IntentSender intent, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options)

    startActivity(Intent, Bundle) ,但采取一个IntentSender启动。

IntentSender的官方Android开发者文档明确指出:

这个类的实例不能直接创build,而必须使用PendingIntent.getIntentSender()从现有的PendingIntent创build。

所以,你会(不应该)看到这个类被直接用在代码示例或教程中。

至于PendingIntent ,它基本上是一个令牌,你给另一个应用程序,它允许应用程序使用你的应用程序的权限来执行你的应用程序的特定代码。

下面是一个在类中使用PendingIntent 的例子 。