Старт кода при запуске Activity
Запускаю вторую Activity, цель которой — конвертация View в формат PNG. Но вынужден делать лишнее движение в виде нажатия кнопки для вызова функции (начало конвертации).
Как запустить функцию при запуске Activity?
val screeshot = findViewById<Button>(R.id.screenshot)
imageUri = createImageUri()
screeshot.setOnClickListener {
val bitmap = container.drawToBitmap()
storeBitmap(bitmap)
}
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
У вас в активности есть метод onCreate(). Туда можно вынести любой метод который вы хотите запускать автоматически без действия пользователя:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
someFunction()
}
если же вы хотите вернуть какие-то данные с второй активности на первую, то можно воспользоваться StartActivityForResult:
fun openSecondActivityForResult() {
val intent = Intent(this, SecondActivity::class.java)
activityResultLauncher.launch(intent)
}
// We can do the assignment inside onAttach or onCreate
var activityResultLauncher = registerForActivityResult(StartActivityForResult()) { result ->
// There are no request codes
if (result.resultCode == resultCode1 && result.data != null) {
// Do operations
} else if (result.resultCode == resultCode2) {
// Do operations
}
}
и на второй активности когда все действия завершены, просто вызываем передачу информации:
val intent = Intent()
setResult(FirstActivity.resultCode1, intent)
finish()