首页 > 代码库 > Android开之在非UI线程中更新UI
Android开之在非UI线程中更新UI
当在非UI线程中更新UI(程序界面)时会出现如下图所示的异常:
那如何才能在非UI线程中更细UI呢?
方法有很多种,在这里主要介绍两种:
第一种:在需要更新UI的代码行后加Looper.prepare();与Looper.loop();两句话即可。如:
new Thread(){ @Override public void run() { // TODO Auto-generated method stub txtRotation.setText("在非UI线程中更新UI!"); Looper.prepare(); Looper.loop(); } }.start();
第二种:使用如下方法:
new Thread(){ @Override public void run() { // TODO Auto-generated method stub showToastByRunnable(MainActivity.this, "", 3000); } }.start();
/** * 在非UI线程中使用Toast * @param context 上下文 * @param text 用以显示的消息内容 * @param duration 消息显示的时间 * */ private void showToastByRunnable(final Context context, final CharSequence text, final int duration) { Handler handler = new Handler(Looper.getMainLooper()); handler.post(new Runnable() { @Override public void run() { Toast.makeText(context, text, duration).show(); } }); }
Android开之在非UI线程中更新UI
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。