为了更好地理解Android的行为,我想了解有关后端堆栈概念的更多信息。有没有办法列出所有活动,因为它们是在后台堆栈中订购的。这还应该包括所有其他正在运行的任务。
答案 0 :(得分:19)
我发现此信息可在Android Studio(0.5.1)中找到:查看 - >工具Windows-> Android 。然后在左侧选择系统信息图标,然后从下拉菜单中选择“图形状态”。这将转储显示大量信息,但如果向下滚动到“查看层次结构:”,您将看到当前的视图堆栈,即“后台堆栈”。
OP确实询问了运行任务,所以如果选择“图形状态”选择“活动管理器状态”,你会发现更多信息(尽管我发现在“图形状态”中查看信息更为简单什么活动在后面的堆栈中。)答案 1 :(得分:0)
已经存在一个类似于你的问题。我想这会回答你的问题:
答案 2 :(得分: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()})