@xaiponews

Как ограничить число открытых activity?

Есть приложение в котором открываются новые activity, старые activity продолжают занимать память. Нужно ограничить максимальное число открытых (например до 4) activity.
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 1
evsmusic
@evsmusic
В простейшем виде как-то так можно реализовать:

fun runNewActivity() {

  val am: ActivityManager = getSystemService(ACTIVITY_SERVICE) as ActivityManager
  var numActivities = 0
  numActivities = if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
          val tasks = am.appTasks
          tasks[0].taskInfo.numActivities
      } else {
          am.getRunningTasks(10)[0].numActivities
  }

  if(numActivities > 4) {
      startActivity(...)
      // https://developer.android.com/reference/android/app/Activity#finishAffinity()
      finishAffinity()
  }
}


P.S.: проверки на границы опустил намеренно для наглядности
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы