为了更好地理解 Android 的行为,我想了解更多关于后台堆栈概念的信息。有没有办法列出所有活动,因为它们在后堆栈中排序。这还应该包括所有其他正在运行的任务。
问问题
13405 次
3 回答
19
我发现此信息在 Android Studio (0.5.1) 中可用:View->Tool Windows->Android。然后在左侧选择系统信息图标,然后从它的下拉列表中选择“图形状态”。这将转储显示大量信息,但如果您向下滚动到“视图层次结构:”,您将看到当前的视图堆栈,即“后退堆栈”。
OP 确实询问了有关运行任务的问题,因此,如果选择“图形状态”,请选择“活动管理器状态”,您会发现更多信息(尽管我发现在“图形状态”中查看信息更简单,以便专门查看哪些活动位于后堆栈中)。
于 2014-03-13T22:47:43.807 回答
0
已经有一个问题与您的问题相似。我想这会回答你的问题:
于 2012-05-17T13:08:51.197 回答
0
对于您自己的应用程序的后台堆栈,您可以使用以下方法编写自己的解决方案Application.ActivityLifecycleCallbacks
:
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
ActivityBackStackTracker.install(this)
}
}
class ActivityBackStackTracker : Application.ActivityLifecycleCallbacks {
override fun onActivityCreated(activity: Activity, bundle: Bundle?) {
activityStack.add(activity::class)
}
override fun onActivityDestroyed(activity: Activity) {
activityStack.remove(activity::class)
}
//..
companion object {
private val activityStack = mutableListOf<KClass<out Activity>>()
fun getCurrentActivityStack() = listOf(activityStack)
fun install(app: Application) {
app.registerActivityLifecycleCallbacks(ActivityBackStackTracker())
}
}
}
然后,您可以随时使用以下命令记录它:
Log.d(TAG, "${ActivityBackStackTracker.getCurrentActivityStack()})
于 2020-11-18T20:42:10.130 回答