Android 多线程数据加载

     我们知道android的UI线程,即是android的主线程,主线是线程安全的。像有些耗时的线程,如下载、上传或是大文件解析等是不可以放在主线程中进行的,为什么这样说呢?因为在主线程中进行耗时的操作会导致界面卡住,导致ANR(应用程序无响应),ANR给客户的体验非常不好,作为程序员就要尽量避免出现这种情况。我们如何来做呢?其实我们就可以用多线程来解决。比如我们可以开启一个新线程来做这个耗时的操作,而不影响到主线程的界面加载,下面举个例子来说明一下:

  public class HandlerTest extends Activity{

        private Handler handler;

        private Runnable runnable = new Runnable {

                   public void run{

                           initViews();             //大数据加载

                   }

        }

        public void onCreate(){

                   super.savedInstance(....);

                   handler = new Handler();

                   // initViews();   如果这样加载的话容易卡住

                 

                   //我们用另外一种方法来实现

                  handler.postDelayed(runnable,1000);                   开启另外一个线程来实现数据的加载

        }

       public void initViews(){

                    .......

                    .......

                    .......                                     //加载很多数据

           }

   上面这种多线程的方法就可以避免导致ANR,也可实现快速加载!

                     

猜你喜欢

转载自blog.csdn.net/wufeiqing/article/details/43459851