openatx / android-uiautomator-server

MIT License
252 stars 145 forks source link

fix issue 407 #35

Closed yaming116 closed 4 years ago

yaming116 commented 4 years ago

service 的onDestory不能保证一定为调用,所以注册广播需要手动先注销一次 https://stackoverflow.com/questions/7236782/is-an-android-service-guaranteed-to-call-ondestroy

codeskyblue commented 4 years ago

我觉得你就算加了也没用,假如onDestroy没执行,你现在调用unregister 取消注册的是另一个函数,而这个函数并没有之前注册过,所以不会生效。不信你打个log看看

Sent with GitHawk

yaming116 commented 4 years ago

确实是无效的,我的疏忽,今天查看了具体的安卓源码发现问题主要原因是在service销毁的时候系统在处理资源回收发现有广播泄漏,然后打印日志并进行主动回收,但是在严格模式下会产生崩溃,具体代码在这里 https://android.googlesource.com/platform/frameworks/base/+/742a67127366c376fdf188ff99ba30b27d3bf90c/core/java/android/app/LoadedApk.java