由于性能要求,android 要求只能在 UI 线程中更新 UI,要想在其他线程中更新 UI,给大家介绍一种方式:使用 Handler 消息传递机制。
下面用这种方式更新一个 TextView:
- package com.example.runonuithreadtest;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.widget.TextView;
- public class MainActivity extends Activity {
- private TextView tv;
- Handler handler = new Handler()
- {
- public void handleMessage(android.os.Message msg) {
- if(msg.what==0x123)
- {
-
tv.setText("更新后的TextView");
- }
- };
- };
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- tv = (TextView) findViewById(R.id.tv);
- new MyThread().start();
- }
- class MyThread extends Thread
- {
- @Override
- public void run() {
- //延迟两秒更新
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
-
// TODO Auto-generated catch block
-
e.printStackTrace();
- }
- handler.sendEmptyMessage(0x123);
- }
- }
- }
当然对 APP 的性能测试,我比较常用的是这个平台:www.ineice.com
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于