
当我的活动完成时,将对活动上下文的引用为空是一种好习惯吗?我有3个AsyncTask,它们每个都可以同时在多个实例中运行.在onPostExecute()中更新UI.在onDestroy()中清空所有Activity Context引用将非常困难,并使代码混乱.最好的事情是什么?
解决方法:
在Google的WeakAsyncTask上查看asynctask的示例,该示例不会在活动生命周期之外保持引用有效,而在DroIDFu上的BetterAsyncTask则是连接AsyncTask的方式示例,以便它们可以重新连接到新的活动实例(例如,轮换之后) );用法示例为here.
短期内保持对Activity的引用不会有太大的危害(例如,单个小的Web请求或小的文件写入),但是如果任务堆积的可能性很大,则可能会引起问题.例如,如果您的应用在创建时从服务器读取200KB的XML文件,也就是说在EDGE上可能需要1分钟或更长时间,那么快速将手机打开/关闭3或4次翻动可能会导致4个保留的Activity实例- -在这种情况下,您很快就会耗尽内存,更不用说重复的工作了.
但是,对于任何真正长时间运行的进程,您绝对应该考虑使用IntentService而不是AsyncTask.它们是为长时间运行的流程而设计的,这些流程实际上并没有与特定活动相关联-例如,如何发送MMS并让活动去做其他事情,并且您会得到愉快的敬酒,告知您完成活动任务完成时.
总结以上是内存溢出为你收集整理的android-当我的活动完成时,是否应该对活动上下文的引用为空?全部内容,希望文章能够帮你解决android-当我的活动完成时,是否应该对活动上下文的引用为空?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)