Andriod开发中遇到的小坑

1.System.exit(0);结束正在运行的虚拟机,即进程会被杀掉,通过adb shell命令进去 ps是查不到那个进程的,意味着所有的对象将会被回收,内存将被释放。参数0代表正常结束,非0代表异常结束!

如果我们程序是按照我们预想的执行,到最后我们需要停止程序,那么我们使用System.exit(0),而System.exit(1)一般放在catch块中,当捕获到异常,需要停止程序,我们使用System.exit(1)。这个status=1是用来表示这个程序是非正常退出。


2.单例模式,遇到的坑,Activity被finish以后,这些静态的对象并未被及时回收,我遇到的情况是这样:这个静态对象持有了View的根布局对象,以及几个view的实例,Activity被finish后呢,再次执行onCreate后,通过getInstance().init(rootview)传递新的rootview进来,并赋值。

然而这个单例对象还在,保存的几个view实例由于之前被添加过,所以它们的parent是不为空的,显示的时候就没有再次添加到最新的rootview 上导致了view没显示出来!  被这个静态的玩意坑了好久才找到原因。。。

if (mlayout.getParent() == null)  mrootLayout.addView(mlayout);


3.调试小技巧:view 显示异常的,可通过调整其大小位置。我遇到的情况是:项目中用到surfaceview



持续更新中..........


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值