Android 多线程

定义一个新线程

  • 继承Thread
class MyThread extends Thread {
    @Override
    public void run(){
    }
}
//调用实例
new MyThread().start();
  • 继承Runnable接口
class MyThread implements Runnable{
        @Override
        public void run() {
            
        }
    }
//调用方法
MyThread myThread = new MyThread();
new Thread(myThread).start();
  • 匿名类(最常见)
new Thread(new Runnable() {
            @Override
            public void run() {
                
            }
        }).start();

子线程更新UI

在子线程中更新UI会导致系统错误,所以需要创建一个handle来更新

private static final int UPDATE = 1;
private Handler handle = new Handler(){
      public void handleMessage(Message msg){
          switch (msg.what){
              case UPDATE:
                  break;
              default:
                  break;
          }
      }
};
//需要更新ui时,发送message
Message message = new Message();
message.what = UPDATE;
handle.sendMessage(message);

或是使用runOnUiThread方法。
还有通过类继承AsyncTask重写方法的方式,可以设置需要进度条的组件,不过现在Android好像不推荐这种方法了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容