当前位置:天才代写 > tutorial > 安卓教程 > Android开发学习之路-使用Handler和Message更新UI

Android开发学习之路-使用Handler和Message更新UI

2021-02-12 14:28 星期五 所属: 安卓教程 浏览:12

在Android中,在非主线任务程中升级UI控制是不安全的,app在运作的时候会立即Crash,因此 在我们必须在非主线任务程中升级UI控制,那麼就必须采用Handler和Message来完成

Demo中,应用到一个按键和一个TextView,点一下按键以后更改TextView的內容,按键点一下情况下新创建一个过程,在过程中对UI控制开展改动。

 public class MainActivity extends Activity implements OnClickListener {
     private static final int UPDATE_TEXT = 1;
     private Button send;
     private TextView tv;
     
     private Handler hd = new MyHandler();
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         send = (Button) findViewById(R.id.bt_sendMessage);
         tv = (TextView) findViewById(R.id.tv_text);
         send.setOnClickListener(this);
     }
 
     @Override
     public void onClick(View v) {
         switch (v.getId()) {
         case R.id.bt_sendMessage:
             new Thread(new Runnable() {
                 @Override
                 public void run() { // 新创建一个进程,并新创建一个Message的目标,是用Handler的目标推送这一Message
                     Message msg = new Message();
                     msg.what = UPDATE_TEXT; // 客户自定的一个值,用以标志不一样种类的信息
                     hd.sendMessage(msg); // 推送信息
                 }
             }).start();
             break;
 
         default:
             break;
         }
     }
     
     // 界定一个内部类承继自Handler,而且遮盖handleMessage方式用以解决子进程传出去的信息
     class MyHandler extends Handler{
         @Override
         public void handleMessage(Message msg) {
             super.handleMessage(msg);
             switch (msg.what) {
             case UPDATE_TEXT: // 接纳到信息以后,对UI控制开展改动
                 tv.setText("改动取得成功!");
                 break;
 
             default:
                 break;
             }
         }
     }
 }

 了解:先在主主题活动中界定一个内部类,并承继自Handler,而且遮盖Handler中的handleMessage方式,这一方式在Handler中是一个空方式,便于大家自定信息的內容。随后在onCreate方式中,获得Button而且加上点击事件,在事情中加上一个进程,在进程中,应用Message类封裝一个信息,随后用Handler的目标推送这一信息,Handler目标的handleMessage方式便会被启用,做到更改TextView的內容的实际效果。

 

    关键字:

天才代写-代写联系方式