Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
300 of 502 menu
◀ ▶

Метод addFlags

Метод addFlags класса Intent дополняет битовую маску флагов. Флаги управляют стеком задач, правами на Uri и другими деталями запуска. После настройки intent вызывают через startActivity.

Синтаксис

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

Параметры

Параметр Описание
flags Один или несколько флагов Intent через OR.

Пример

Давайте очистим верх стека перед новым экраном:

import android.content.Intent import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Button(onClick = { val intent = Intent(this@MainActivity, SecondActivity::class.java) intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) startActivity(intent) }) { Text(text = "abcde") } } } }

На экране кнопка откроет SecondActivity, существующий экземпляр в стеке получит intent сверху.

Пример

Давайте разрешим чтение Uri у получателя:

import android.content.Intent import android.net.Uri import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Button(onClick = { val uri = Uri.parse("content://example/12345") val intent = Intent(Intent.ACTION_SEND).apply { type = "text/plain" putExtra(Intent.EXTRA_STREAM, uri) addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) } startActivity(intent) }) { Text(text = "12345") } } } }

На экране выбранное приложение сможет прочитать переданный Uri.

Смотрите также

  • метод setComponent,
    явный запуск конкретной activity
  • метод startActivity,
    которым отправляют intent с флагами
  • метод setDataAndType,
    часто вместе с GRANT_READ_URI_PERMISSION
  • класс Intent,
    где объявлен addFlags
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить