public class MainActivity extends Activity implements View.OnClickListener { public static final int UPDATE_TEXT = 1; private static TextView mtext; private Button mbutton; private final Myhander myhander = new Myhander(this); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mtext = findViewById(R.id.text); mbutton = findViewById(R.id.change_text); mbutton.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.change_text: new Thread(new Runnable() { @Override public void run() { String str = "你年龄:"; Message message = new Message(); message.what = UPDATE_TEXT; message.obj = str; message.arg1 = 1; message.arg2 = 8; myhander.sendMessage(message); } }).start(); break; } } private static class Myhander extends Handler { private final WeakReference<MainActivity> mainActivity; Myhander(MainActivity activity) { mainActivity = new WeakReference<>(activity); } @Override public void handleMessage(Message msg) { super.handleMessage(msg); MainActivity activity = mainActivity.get(); if (activity != null) { switch (msg.what) { case UPDATE_TEXT: String mstring = (String) msg.obj; int age = msg.arg1; int age1 = msg.arg2; //这行代码有警告,不能应该这样写,我测试写法 mtext.setText(mstring + age + age1); break; } } } } }
Android Handler Message 使用和防止Handler内存泄漏
猜你喜欢
转载自blog.csdn.net/yineng7758258/article/details/84335304
今日推荐
周排行