Какова цель IntentSender? - PullRequest
20 голосов
/ 06 марта 2012

Я хочу знать, какова цель класса IntentSender для нашего приложения?Как мы используем его в нашем приложении?

Есть ли какие-нибудь хорошие примеры, кроме API для Android, основанных на намерениях: Часть седьмая - IntentSenders и PendingIntents ?

Ответы [ 2 ]

11 голосов
/ 16 декабря 2015

IntentSender - это уровень абстракции или класса клея, который позволяет вам

  1. Получение трансляции, когда пользователь выбирает приложение в Chooser.

    Пример использования 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. Начать Activity с IntentSender вместо Intent (подробнее в Документах Android )

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

    Как и startActivity(Intent, Bundle), но для запуска требуется IntentSender.

2 голосов
/ 03 октября 2013

Официальная документация Android-разработчика для IntentSender четко гласит:

Экземпляры этого класса не могут быть созданы напрямую, а скорее должны быть созданы из существующего PendingIntent with PendingIntent.getIntentSender().

Таким образом, вы бы (не) не видели, чтобы этот класс использовался непосредственно в примере кода или в учебнике.

Что касается PendingIntent, то это в основном токен, который вы даете другому приложению, которое позволяет этому приложению использовать разрешения вашего приложения для выполнения определенной части кода вашего приложения.

Вот пример PendingIntent, используемого в классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...