android 学习笔记 线程的基本用法

线程的基本用法

定义一个线程只需要新建一个类继承自Thread,然后重写父类的run()方法,并在里面编写耗时逻辑即可,如下所示: 

 class MyThread extends Thread { 

              @Override 

              public void run() { 
                  // 处理具体的逻辑 

              } 

          } 

  那么该如何启动这个线程呢?其实也很简单,只需要new出MyThread的实例,然后调用它的start()方法,这样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(); 


android 在线程中不允许UI操作 所以 我们一般用handler 来解决:代码如下所示

           public class MainActivity extends Activity implements OnClickListener { 

               public static final int UPDATE_TEXT = 1; 

               private TextView text; 

               private Button changeText; 

               private Handler handler = new Handler() { 

                   public void handleMessage(Message msg) { 

                       switch (msg.what) { 
                       case UPDATE_TEXT: 

                           // 在这里可以进行U 操作 
                           text.setText("Nice to meet you"); 

                           break; 
                       default: 

                           break; 
                       } 

                   } 

               }; 
               …… 

               @Override 
               public void onClick(View v) { 

                   switch (v.getId()) { 
                   case R.id.change_text: 

                       new Thread(new Runnable() { 
                           @Override 

                           public void run() { 
                              Message message = new Message(); 

                              message.what = UPDATE_TEXT; 
                               handler.sendMessage(message); // 将Message对象发送出去 

                           } 
                       }).start(); 

                       break; 
                   default: 

                       break; 



 


      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值