第一种:
new Handler(context.getMainLooper()).post(new Runnable() { @Override public void run() { // 在这里运行你要想的操作 比方直接在这里更新ui或者调用回调在 在回调中更新ui } });
context是你传过来的context对象
另外一种:
// 假设当前线程是UI线程,那么行动是马上运行。假设当前线程不是UI线程,操作是公布到事件队列的UI线程 // 由于runOnUiThread是Activity中的方法,Context是它的父类,所以要转换成Activity对象才干使用 ((Activity) context).runOnUiThread(new Runnable() { @Override public void run() { // 在这里运行你要想的操作 比方直接在这里更新ui或者调用回调在 在回调中更新ui } });
第三种:
第三种是使用Handler的方法,往Handler中发送一个消息,然后当Handler接收到你发送过来的消息,再在Handler运行对应的操作
这是接收消息运行的代码:
private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: button1.setText("点击安装"); down = 1; break; case 2: down = 2; button1.setText("打开"); break; } } };
这是发送消息的代码:
// 往handler发送一条消息 更改button的text属性 Message message = handler.obtainMessage(); message.what = 1; handler.sendMessage(message);
时间: 2024-10-12 14:55:57