Разница между sharecompat.intentbuilder vs action_send

141
30 июля 2019, 07:20

Подскажите пожалуйста в чем разница? я сейчас новичок в андройде и увидел два метода для шейра текста к примеру через:

    Intent shareIntent = ShareCompat.IntentBuilder.from(this)
            .setType("text/plain")
            .setText("Hello world")
            .getIntent();

и второй метод через:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType("text/plain");

Подскажите пожалуйста в чем разница?

Answer 1

На самом деле различия только в удобстве. ShareCompat.IntentBuilder предоставляет вам удобный интерфейс создания intent-a. Если заглянете в исходники IntentBuilder то в конструкторе увидите следующее:

private IntentBuilder(Activity launchingActivity) {
    mActivity = launchingActivity;
    mIntent = new Intent().setAction(Intent.ACTION_SEND);
    mIntent.putExtra(EXTRA_CALLING_PACKAGE, launchingActivity.getPackageName());
    mIntent.putExtra(EXTRA_CALLING_ACTIVITY, launchingActivity.getComponentName());
    mIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
}

В ходе работы с классом вы устанавливаете флаги intent-a. Для примера setType:

public IntentBuilder setType(String mimeType) {
            mIntent.setType(mimeType);
            return this;
        }

И в результате возвращаете уже готовый intent с помощью getIntent().

READ ALSO
Каким образом я могу проверить таблицу SQLite на существование нужной мне записи?

Каким образом я могу проверить таблицу SQLite на существование нужной мне записи?

У меня есть форма регистрацииНужно, чтобы если пользователь вводил имя, существующее в базе данных, ему выдавалась ошибка

124
The driver has not received any packets from the server

The driver has not received any packets from the server

У меня есть приложение, которое я подготовил для запуска в dokcer:

111
Как отправить SMS в фоновом режиме? (API Min равно 22)

Как отправить SMS в фоновом режиме? (API Min равно 22)

Нужно чтобы программа работала в фоновом режиме и с определенным интервалом отправляла смс сообщенияВот код службы

121