本文共 1405 字,大约阅读时间需要 4 分钟。
1.强引用 – GC不会回收(必需品)
2.软引用 – 内存不够就回收,内存够的话就不会回收。(可有可无) 3.弱引用 – GC在扫描的时候,一旦发现即刻回收。 4.虚引用 – 随时都会被回收
public class SingleTon{ private SingleTon(){} public static SingleTon instance; public SingleTon getInstance(){ synchronized(SingleTon.class){ if(instance == null){ synchronized(SingleTon.class){ instance = new SingleTon(); } } } return instance; } }
sleep() 线程休眠一段时间,一段时间结束后,线程进入可执行状态,等待CPU调度。休眠期间,不释放持有的锁。
wait() 线程休眠一段时间,如果设置参数,时间到时,线程自动进入可执行状态。若没有,则需要notify()方法唤醒。wait和notify都是针对this对象的,调用wait之后,会释放加载对象上的锁。
yield()方法也是线程放弃执行的权限,让相同优先级或高优先级的线程先执行
Android ANR 即程序无响应异常。Android ANR 一般有3种类型: KeyDispatchTimeout(5 sceonds) 按键或触摸事件在特定时间无响应 BoardcastTimeOut(10 sceonds) BoardcastReceiver 在特定的时间内无响应 ServiceTimeout(20 seconds) Service在特定的时间内无法处理完成解决ANR的姿势: 1.查看LOG,获取ANR类型 2.查看分析trace.txt文件(需root) chrom 777 /data/arn rm /data/arn/traces.txt ps kill -3 PID adb pull data/anr/traces.txt ./mytraces.txt
Activity 是指一个页面,Fragment指的是碎片化的页面,Fragment依赖于Activity存在。他们之间的声明周期非常类似。
转载地址:http://etpgi.baihongyu.com/