首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

UI线程堵塞导致主界面无法刷新

2012-08-13 
UI线程阻塞导致主界面无法刷新错误如下:06-15 04:33:34.789: W/dalvikvm(2924): threadid14: thread exit

UI线程阻塞导致主界面无法刷新

错误如下:

06-15 04:33:34.789: W/dalvikvm(2924): threadid=14: thread exiting with uncaught exception (group=0x40a791f8)
06-15 04:33:34.789: E/AndroidRuntime(2924): FATAL EXCEPTION: ComposeHandler
06-15 04:33:34.789: E/AndroidRuntime(2924): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4109)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:709)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.view.View.requestLayout(View.java:12710)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.view.View.requestLayout(View.java:12710)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.view.View.requestLayout(View.java:12710)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.view.View.requestLayout(View.java:12710)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.view.View.requestLayout(View.java:12710)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.view.View.requestLayout(View.java:12710)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.view.View.requestLayout(View.java:12710)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.view.View.requestLayout(View.java:12710)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:268)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.view.View.requestLayout(View.java:12710)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.view.View.setFlags(View.java:6728)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.view.View.setVisibility(View.java:4625)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at com.android.mms.ui.ComposeMessageActivity.updateTypingIcon(ComposeMessageActivity.java:8182)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at com.android.mms.ui.ComposeMessageActivity.access$9700(ComposeMessageActivity.java:257)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at com.android.mms.ui.ComposeMessageActivity$ComposeEventHdlr.handleMessage(ComposeMessageActivity.java:8619)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.os.Handler.dispatchMessage(Handler.java:99)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.os.Looper.loop(Looper.java:137)
06-15 04:33:34.789: E/AndroidRuntime(2924): ??? at android.os.HandlerThread.run(HandlerThread.java:60)
06-15 04:33:34.820: W/ActivityManager(224):?? Force finishing activity com.android.mms/.ui.ComposeMessageActivity

?

?

修改方法:

将更新UI代码加入到activity的UI线程队列中

??? /*<Hap5.2 Message+ kf55773 2012-06-15 begin */
??? private void updateTypingIcon(final boolean aEnableTyping) {
??? ??? ComposeMessageActivity.this.runOnUiThread(new Runnable() {
??? ??? ??? public void run() {
??? ??? ??? ??? if (null == mTypingIcon) {
??? ??? ??? ??? ??? /* modified by Message+ kf36922 20120207 begin */
??? ??? ??? ??? ??? mTypingIcon = (GifView) findViewById(R.id.typing);
??? ??? ??? ??? ??? /* modified by Message+ kf36922 20120207 end */
??? ??? ??? ??? }
??? ??? ??? ??? if (aEnableTyping) {
??? ??? ??? ??? ??? mTypingIcon.setVisibility(View.VISIBLE);
??? ??? ??? ??? } else {
??? ??? ??? ??? ??? mTypingIcon.setVisibility(View.GONE);
??? ??? ??? ??? }
??? ??? ??? }
??? ??? });
??? }
?? /*<Hap5.2 Message+ kf55773 2012-06-15 end */

?

热点排行