Activity.runOnUiThread介绍-Android
Posted hequnwang10
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Activity.runOnUiThread介绍-Android相关的知识,希望对你有一定的参考价值。
android中我们不在子线程中操作UI,但是如果非要在子线程中操作完后实现对UI操作,这里的实现方法如下:
mButton.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
new Thread(new Runnable()
@Override
public void run() // 子线程
Message message = new Message();
Bundle bundle = new Bundle();
bundle.putString("ChangeUI", "Handler改变了ui");
message.setData(bundle);
handler.sendMessage(message);
).start();
);
private Handler handler = new Handler()
@Override
public void handleMessage(Message msg)
super.handleMessage(msg);
Bundle bundle = msg.getData();
String str = bundle.getString("ChangeUI");
mUiTextview.setText(str);
;
runOnUiThread 就是为了更便捷的执行子线程时对ui进行操作
mButton2.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
new Thread(new Runnable()
@Override
public void run() // 子线程
runOnUiThread(new Runnable()
@Override
public void run()
mUiTextview.setText("runOnUiThread改变了ui");
);
).start();
);
源码:
final Handler mHandler = new Handler();
private Thread mUiThread;
public final void runOnUiThread(Runnable action)
if (Thread.currentThread() != mUiThread)
mHandler.post(action);
else
action.run();
如果当前线程是UI线程,那么行动是立即执行。如果当前线程不是UI线程,操作是发布到事件队列的UI线程。
以上是关于Activity.runOnUiThread介绍-Android的主要内容,如果未能解决你的问题,请参考以下文章
Activity.runOnUiThread(Runnable action)仅更新视图一次