android-asynctask – Android上下文弱参考

前端之家收集整理的这篇文章主要介绍了android-asynctask – Android上下文弱参考前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的一些应用程序中,我使用一些单例对象作为“管理器”.我在Application.onCreate中实例化它们,然后将它传递给ApplicationContext,我将它存储在WeakReference中.

一些“管理器”方法在从Activity调用后启动后台任务,因此我将Activity的上下文传递给方法,并将WeakReference保存到该方法中(并在AsyncTask中使用它).当WeakReference设置为新Activity的上下文时,该引用将保留到下一次Activity调用转到后台方法.

我的问题是,ApplicationContext是否必须保存在WeakReference中,并且保存Activity的上下文是否存在任何问题?

解决方法

将WeakReference保留在活动的上下文中的原因是,您不会保留对已经或应该已经销毁的活动的引用.应用程序不存在此类问题.在这种情况下,WeakReference是不必要的.

由于您没有详细说明您正在使用它的内容,因此很难评论您对活动上下文的使用.你交换不同活动的背景听起来有点怀疑.如果你真的需要特定活动的上下文,这可能没问题,但是如果你只想要一个有效的Context与AsyncTask一起使用,那么我会考虑重新思考你的方法.它可能会起作用,但它有点hacky.根据您的需要,还有其他选项可能更合适:IntentServiceLoaders是需要考虑的选项.

猜你在找的Android相关文章