码迷,mamicode.com
首页 > 移动开发 > 详细

android实现异步的问题小经验总结

时间:2017-05-09 15:00:58      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:bsp   error   hand   方法   public   --   div   runnable   new   

1、如下图所言,必须在UI线程中调用异步任务的子类

技术分享

2、经过碰壁 测试

1--、方法一中
 @Override
            public void onClick(DialogInterface dialog, int which)
            {Thread thread=new Thread(new Runnable() {
                @Override
                public void run()
                {

                    uploaddd();

                }
            });
               thread.start();
2--、方法二中
  private void uploaddd()
    {
        final Handler handler=new Handler()
        {
            public void handleMessage(Message msg)
            {
                if(msg.what==1)
                {
                    Log.d("DFDFDFDF",ii+"__"+"haode");              

                }
            }
        };
        Thread thread =new Thread(new Runnable()
        {
            @Override
            public void run()
            {
                Log.d("DFDFDFDF",ii+"__");
                handler.sendEmptyMessage(1);
            }
        });
        thread.start();
    }

上述代码会挂掉 证明得出 在非UI中 调用的方法继续开启线程同时有Handler机制会出现异常(因为Handler是异步机制)

实验得出下述代码不会出现异常

1--
 @Override
            public void onClick(DialogInterface dialog, int which)
            {Thread thread=new Thread(new Runnable() {
                @Override
                public void run()
                {

                    uploaddd();

                }
            });
               thread.start();


2--
 private void uploaddd()
    {
//        final Handler handler=new Handler()
//        {
//            public void handleMessage(Message msg)
//            {
//                if(msg.what==1)
//                {
//                    Log.d("DFDFDFDF",ii+"__"+"haode");
////                    if(AndroidClient._error_uploadScrapImgFile.intern()!="")
////                    {
////                        Toast.makeText(ActivityScrap.this,AndroidClient._error_uploadScrapImgFile,Toast.LENGTH_SHORT).show();
////                    }
//                }
//            }
//        };
        Thread thread =new Thread(new Runnable()
        {
            @Override
            public void run()
            {
                Log.d("DFDFDFDF",ii+"__");
                AndroidClient.uploadScrapImgFile(scrapImgDatas,ii+"__");
                //handler.sendEmptyMessage(1);
            }
        });
        thread.start();
    }

 

android实现异步的问题小经验总结

标签:bsp   error   hand   方法   public   --   div   runnable   new   

原文地址:http://www.cnblogs.com/JLZT1223/p/6830290.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!