android 子线程handler 实现

public class FinalActivity extends AppCompatActivity {

    private TextView tvFinal;
    private static Handler h;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_final);
        findViewById(R.id.btn_next).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                LogUtils.w("click............");
                h.sendEmptyMessage(1);
            }
        });
        tvFinal = findViewById(R.id.final_tv);

        new Thread(new Runnable() {
            @SuppressLint("HandlerLeak")
            @Override
            public void run() {
                Looper.prepare();
                h = new Handler(Looper.myLooper()) {
                    @Override
                    public void handleMessage(Message msg) {
                        super.handleMessage(msg);
                        String text = "改变了" + new Random().nextInt(1000);
                        LogUtils.w("text:" + text);

                    }
                };
                Looper.loop();
            }
        }).start();
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        LogUtils.w("destroy....");
        if (h != null) {
            h.removeCallbacksAndMessages(null);
        }
    }
}

代码是示例代码,但是简单明了,子线程更新 UI,就这样写就可以了。

猜你喜欢

转载自blog.csdn.net/ducklikejava/article/details/81071212
今日推荐