В простейшем виде как-то так можно реализовать:
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.: проверки на границы опустил намеренно для наглядности