Handler的簡單使用

weixin_33670713發表於2018-04-12

public class MainActivity extends AppCompatActivity {

    private static int UPDATE = 200;

    private TextView mTv;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        mTv = (TextView) findViewById(R.id.tv);

    }

    private Handler handler = new Handler() {

        @Override

        public void handleMessage(Message msg) {

            if (msg.what == UPDATE) {

                // 更新介面上的textview

                mTv.setText(String.valueOf(msg.obj));

            }

            super.handleMessage(msg);

        }

    };

    public void click(View view) {

        Toast.makeText(this, "點選了", Toast.LENGTH_SHORT).show();

        new Thread(new Runnable() {

            @Override

            public void run() {

                SystemClock.sleep(5000);

                Message msg = new Message();

                msg.what = UPDATE;

                msg.obj = "非同步更新後的值";

                handler.sendMessage(msg);

            }

        }).start();

    }

}