java/android 做题中整理的碎片小贴士(3)

1、IntentService 继承自Service, 所以它们的生命周期是一样的,都没有onStop(), 有onCreate(), onStart(), onDestroy()。但是IntentService在onCreate()会新开一个线程去执行耗时操作。

2、AlertDialog创建需要用内部类builder, 但是processDialog就不用。两者的对象都可以在设置参数后用show()显示出来。

3、BroadcaseReceiver的onReceive()方法在ui线程执行(也导致当前界面为前台),而IntentService的onHandleIntent()不是在ui线程执行。

4、onResume()之后用户才开始可以进行交互,而非onStart();

5、Parcelable就是把对象分解成很多属性保存起来,它不能很好地保证数据的“持续性”,但是它会性能高一些,适合内存存储用。Serializable在序列化的时候会产生大量临时变量,导致频繁GC,因而效率低,适合磁盘存储。

6、android给message提供消息池,asyncTask也可以看做有线程池。但是Thread没有提供线程池,除非自己有ThreadPool。Looper不算资源池。

7、Frame(画面转换动画,一帧一帧的)包括translate和rotate

Tween(渐变动画,是补间动画,设置初始值和结束值,自动补充中间),包括alpha、scale

8、(android系统角度看)进程重要性依次是前台进程、可见进程、服务进程、后台进程、空进程。销毁从后往前。其中可见进程是虽然可见但没有交互的。

9、前台进程的条件:①正在交互②正在交互的活动持有service③有前台service④有正在生命周期回调的方法⑤有正在执行onReceive()的广播接收器。

10、产生ANR的条件:Activity无响应5秒、Broadcast无响应10秒、Service无响应20秒。

11、AIDL的接口名要和文件名相同。

12、theme被final修饰,不能被继承。(修饰activity的)

13、inten可以传递的实现了Serializable的、实现了Parcelable的、charSequence、基本类型、String(实现了Serializable)。

14、保存状态的是onSaveInstanceState()。

15、BorderLayout是java中的。android还有一个没用过的TableLayout。

16、startActivityForResult()与启动模式没啥关系,即使是SingleInstance模式在另一个栈中启动,仍然可以返回。

原文地址:https://www.cnblogs.com/jason31/p/9549779.html