Метод 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