标签:run thread 程中 runOnUiThread UI action Android
Android确保在主线程中执行更新ui操作
利用Activity的runOnUiThread(Rannable)把动作放在rannable中,确保动作是在UI线程中执行的;
通过源码:
/** * Runs the specified action on the UI thread. If the current thread is the UI * thread, then the action is executed immediately. If the current thread is * not the UI thread, the action is posted to the event queue of the UI thread. * * @param action the action to run on the UI thread */ public final void runOnUiThread(Runnable action) { if (Thread.currentThread() != mUiThread) { mHandler.post(action); } else { action.run(); } }
发现,如果action是在主线程中,就直接执行,如果不是就post,这实质还是通过handler机制处理线程与UI线程的通信;
用法很简单,但要确保调用者是Activity对象,调用如下:
VideoActivity.this.runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(getApplicationContext(), "在主线程中的", Toast.LENGTH_LONG).show(); } });
标签:run,thread,程中,runOnUiThread,UI,action,Android 来源: https://www.cnblogs.com/rainbowLover/p/10430760.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。