Класс ActivityResultLauncher
Класс ActivityResultLauncher
типизирован по входу контракта.
Его создают
rememberLauncherForActivityResult
или
registerForActivityResult.
Старт диалога или activity делают
методом
launch.
Синтаксис
val launcher: ActivityResultLauncher<String> = ...
launcher.launch(Manifest.permission.CAMERA)
Методы
| Метод | Описание |
|---|---|
launch |
Передаёт вход контракту и открывает системный UI или другой экран. |
Пример
Давайте сохраним launcher и вызовем launch:
import android.Manifest
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.compose.setContent
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.material3.Button
import androidx.compose.material3.Text
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val launcher = rememberLauncherForActivityResult(
ActivityResultContracts.RequestPermission(),
) { _ -> }
Button(onClick = {
launcher.launch(Manifest.permission.CAMERA)
}) {
Text(text = "abcde")
}
}
}
}
На экране по нажатию система покажет запрос разрешения камеры.
Смотрите также
-
метод
launch,
которым стартуют контракт -
функция
rememberLauncherForActivityResult,
которая создаёт launcher в Compose -
класс
StartActivityForResult,
контракт для intent с result -
класс
PickVisualMedia,
контракт выбора медиа