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,也可实现快速加载!

                     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值