让AppGlobals重新获取一下Application的方法?
昨天提问过,老师帮忙看下
https://class.imooc.com/course/qadetail/287879
如果之前代码HiRes.getColor实现方式全部改成ContextCompat.getColor(context,resId),感觉封装的HiRes遇到切换暗黑模式的场景就没意义,
老师说的监听到configration变更后,我们让AppGlobals重新获取一下Application也行。,这个重新获取一下Application是怎么实现的?AppGlobel就一个简单的反射
相关代码:
@SuppressLint("PrivateApi")
object AppGlobals {
private var application: Application? = null
fun get(): Application? {
if (application == null) {
try {
application = Class.forName("android.app.ActivityThread")
.getMethod("currentApplication")
.invoke(null) as Application
} catch (ex: Exception) {
ex.printStackTrace()
}
}
return application
}
}
8
收起
正在回答 回答被采纳积分+1
1回答
LovelyChubby
2021-05-08 21:45:05
比如我们复写mainactivity 的onconfigrationChaned方法里,我们主动让AppGlobal强制重新执行一次反射?
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星