android内存问题

 (如果你不想控制对象的生命周期请避免使用非静态内部类,取而代之是使用内部静态类并保持一个对acticity的弱引用(weak reference)。方法是让内部静态类保持一个对acticity的WeakReference,就像ViewRoot和它的内部类W所做的那样)

 

感觉框架没设计好啊这是,UI里面这类问题是Java主要memory leak来源之一…如果Android支持WeakReference, sBackground对label的引用用WeakReference可能比较合适…

 

你后面说那个,关键是如果sBackground一直是不会回收的,那么这样它就永远hold着一个没用的Activity,这可能是很大的一笔内存…

 

 

4.Activity的finish()方法,在调用之后,他不仅仅是关闭了当前activity,而且还会把结果返回到调用此activity的前一个activity。这就意味着,调用者还在内存中,而没有结束,他一直在等待此activity的结果,纵然调用者里面也使用了finish()方法,但不会从堆栈管道中弹出,因为他还有结果需要处理,只不过调用者处于停止状态。在调用activity的finish()方法时,底层会自动调用destroy()方法,但是,这时相当于,关闭了一个,却打开了另外一个。所以,在多个activity跳转的过程中,使用finish()方法去简单的结束一个activity是不明智的选择,为了达到这个目的可以使用生命周期的destroy()方法,不同的地方是,他自杀了,不会连累别人

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值