多线程是很多人最为头疼的部人,但在Android里,你又是不是不面对的部分。而实际上,你如果愿意花点功夫,多线程也没有什么了不起,懂了,也就很简单了。
1、为什么要用多线程?
(1)提高用户体验;
(2)避免应用程序未响应(Application is not responding)
移动开发的“三不”原则:不让用户等、不让用户想、不要用户烦。响应慢了用户需要等,等的次数多了就会烦,你的应用离被卸载不远了。
即使你的程序中某个事件响应不超过5秒钟,人眼可以分辨的时间是0.1秒,小于0.1秒基本感觉不出来,超过0.2秒用户就能感觉到有点儿卡了,俗称打嗝现象,2秒以上就很慢了,用户体验会很差。有同学说我可以用进度条啊,但你的程序中不能到处都是进度条,否则那个圈圈会把用户转晕的,好像在对用户说,画个圈圈烦死你……
比如某些应用,它要显示很多图片,还好它是异步的,不过在图片加载完成前每个图片的位置上都有一个圈圈,让人看了很烦。你可以变通一下,图片加载成功之前显示一个默认的图片,加载成功后再刷新一下即可,何必弄那么多进度条呢?
2、处理的基本原则:
所有可能耗时的操作都放到其他线程去处理。
Android中的Main线程的事件处理不能太耗时,否则后续的事件无法在5秒内得到响应,就会弹出ANR对话框。那么哪些方法会在 Main线程执行呢?
(1)Activity的生命周期方