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
持续更新中..........