private val mIActivityManager: IActivityManager = ActivityManagerNative.asInterface(
ServiceManager.getService(
Context.ACTIVITY_SERVICE
)
)
方式一(registerProcessObserver) :
mIActivityManager.registerProcessObserver(mIProcessObserverStub)
private val mIProcessObserverStub = object : IProcessObserver.Stub(){
override fun onForegroundActivitiesChanged(
pid: Int,
uid: Int,
foregroundActivities: Boolean
) {
// 栈发生变化
}
override fun onForegroundServicesChanged(pid: Int, uid: Int, serviceTypes: Int) {
}
override fun onProcessDied(pid: Int, uid: Int) {
}
}
方式二(registerTaskStackListener):
mIActivityManager.registerTaskStackListener(object : TaskStackListener(){
override fun onTaskStackChanged() {
super.onTaskStackChanged()
dLog("$TAG onTaskStackChanged...")
}
})
权限添加:
<uses-permission android:name="android.permission.SET_ACTIVITY_WATCHER"/>
<uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS"/>