Я отправляю этот вопрос, так как не нашел идеального решения.Я хочу выйти из системы, если пользователь нажал кнопку «Домой» или не активировал приложение в течение 5 минут.
Я пытался использовать таймер, как показано ниже (код Котлина), но это не совсем правильный путь,это будет работать только для одного экрана активности, а не для всего приложения:
timer = object : CountDownTimer((1 * 60 * 1000).toLong(), 1000) {
override fun onTick(millisUntilFinished: Long) {
Toast.makeText(this@MainActivity, "Ticking", Toast.LENGTH_LONG).show()
}
override fun onFinish() {
currentUser = mAuth!!.currentUser!!
// Code for Logout
Toast.makeText(this@MainActivity, "Finished", Toast.LENGTH_LONG).show()
val colref = mFirestore.collection("AllUsers")
deleteCollectiontimer(colref, EXECUTOR)
}
}
override fun onResume() {
super.onResume()
Toast.makeText(this@MainActivity, "Timer Stopped", Toast.LENGTH_LONG).show()
timer.cancel()
}
override fun onStop() {
super.onStop()
Toast.makeText(this@MainActivity, "Timer Started", Toast.LENGTH_LONG).show()
timer.start()
}
Но если я добавлю приведенный выше код в каждое действие onstop () и onresume (), это неправильно. Так что я не понимаю, как выйти из системы, когда пользователь не активен вцелое приложение?
Я также читал что-то вроде ProcessLifecycleowner, но не совсем понял, как его использовать, так может ли это помочь мне в этом случае, если да, то как?
Есть ликонкретный метод жизненного цикла или прямой код, который позаботится о бездействии всего приложения?
Любая помощь приветствуется.