Android(安卓)多线程更新控件
16lz
2021-12-04
package com.example.androidapp;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {private TextView textView1=null;private Button startButton=null;private Button endButton=null;/*创建Handler对象,作为进程传递postDelayed之用*/private Handler objHandler=new Handler();/* 在MainActivity中定义Handler对象作为成员变量 * 通过Handler这个对象对主线程中的控件进行更新 * */private Handler handler=new Handler(){public void handleMessage(Message msg){switch (msg.what) {case 0:/*取出参数更新控件*/textView1.setText(msg.getData().getString("counter"));break;default:break;}super.handleMessage(msg);}};private Runnable myRunnable=new Runnable() {private int counter=0;@Overridepublic void run() {/*传参*/ Message msg=new Message(); msg.what=0; Bundle bundle=new Bundle(); bundle.putString("counter", String.valueOf(++counter)); msg.setData(bundle); /*发送信息到Handler*/ handler.sendMessage(msg); /*再次调用此Runnable对象,以实现每1秒实现一次的定时器操作*/ objHandler.postDelayed(myRunnable, 1000);}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView1=(TextView)findViewById(R.id.textView1);/*开始线程*/startButton=(Button)findViewById(R.id.startButton);startButton.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View v) {/*开始线程,调用Runnable*/objHandler.post(myRunnable);}});/*结束线程*/endButton=(Button)findViewById(R.id.endButton);endButton.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View v) {/*结束线程,删除mTask运行线程*/objHandler.removeCallbacks(myRunnable);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
更多相关文章
- 类和 Json对象
- Android(安卓)HttpClient
- Google Android's Gingerbread Update Coming Soon
- android之网络资源多线程下载
- Android(安卓)HttpClient
- Android(安卓)studio RelativeLayout相对布局(控件相对父控件摆放
- Android又一个超漂亮的日历控件
- Android常用功能
- android 控件绘制完成的监听