- 浏览: 283544 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
wakikyou320:
楼主能否共享jar包呢?都木找到额
Android应用开发中如何使用隐藏API -
ihopethatwell:
注释/etc/apt/sources.list中 #deb h ...
ubuntu安装android 2.3 -
qq123zhz:
有wma和mp3的吗?
JAVA 读取 ASF(WMA 和 WMV)文件信息 -
zhmeup:
doveqian 写道
朋友:将android 2.3的set ...
debug调试setting源码 -
doveqian:
帮忙下:doveqian@163.com
debug调试setting源码
错误如下:
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 */
发表评论
-
Failed to ensure directory问题
2016-04-19 16:09 872704-19 14:38:08.868: W/ContextIm ... -
使用 Eclipse Memory Analyzer 进行堆转储文件分析
2013-05-31 16:24 823使用 Eclipse Memory Analyzer 进行 ... -
Memory Analyzer(MAT)打开android eclipse Dump内存文件出现 Unknown HPROF Version解决办法
2013-05-31 13:45 9570Error opening heap dump 'co ... -
报错误
2011-09-23 19:15 1629Could not determine whether rev ... -
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE"的问题
2011-08-01 11:10 116381、这是由于应用程序共享了一个系统级别的id,把 把And ... -
ApiDemo安装报错
2011-07-28 16:03 11491、安装ApiDemo报错 root@meie:~# adb ... -
音频文件头解析信息(艺术家、名称)为乱码
2011-07-28 14:55 1717语言设置为英文,扫描时是不进行编码设置的。修改为默认编码方式为 ... -
获得activity方法
2011-07-27 08:53 1281最近项目中需要动态获得activity,仔细研究了下,发现这样 ... -
讲扫描文章
2011-07-25 16:34 758http://www.cnblogs.com/tanlon/a ... -
编 码
2011-07-25 10:18 720String str ="gbk编码格式" ... -
Android应用开发中如何使用隐藏API
2011-07-08 12:35 6091一开始需要说明的是,Google之所以要将一些API隐藏(指加 ... -
注册和取消注册
2011-06-29 16:33 9981、一个activity发送 Intent in ... -
光标位置插入
2011-06-29 16:03 1160EditText mTextInput=(EditText)f ... -
TextView中显示HTML和图片
2011-06-28 21:04 1036最近有人咨询我如何在TextView中显示<img sr ... -
图片转换
2011-06-28 18:42 8971. 图片放在sdcard中, Bitmap imag ... -
显示隐藏ImageView
2011-06-28 16:38 38631、ImageView img01 = (ImageView) ... -
全局参数
2011-06-27 18:35 897原来是把配置文件的appliction写错地方了,不是新建,而 ... -
透明activity
2011-06-27 18:21 8421、res/values/中新建mystyle.xml文件,内 ... -
禁止横竖屏切换
2011-06-22 13:19 909修改AndroidManifest .xml文件中属性: ... -
R文件丢失修复方法
2011-06-20 01:02 10531、勾选Project->Build AutoMatci ...
相关推荐
特别是在UI(用户界面)开发中,为了保证界面的流畅性,通常我们会将耗时操作放在后台线程进行,而更新UI则需要在主线程(也称为UI线程)中完成。这是因为UI控件不是线程安全的,多个线程并发访问可能导致数据不一致...
然而,当执行耗时的操作,如网络请求、大数据处理或长时间计算时,如果在主线程中执行,会阻塞UI,导致界面无响应,用户体验下降。为了解决这个问题,我们可以将这些操作放在子线程中执行,然后通过特定机制更新UI。...
在Android开发中,UI线程(主线程)主要负责用户界面的绘制与交互,因此它必须保持流畅,避免被耗时操作阻塞。为了解决这个问题,Android提供了多种异步处理机制,其中一种常见的方式是使用`Thread`配合`Handler`来...
而工作线程则用于执行耗时的任务,如大量计算、网络通信或读写文件,以避免阻塞UI线程,保持用户界面的响应性。 在MFC(Microsoft Foundation Classes)框架中,我们可以利用其提供的多线程支持来实现UI线程和工作...
在压缩包中的文件“**多线程主界面刷新(guojie)**”很可能是一个示例项目,可能包含了一个或多个人工创建的线程或使用上述组件来演示如何在后台线程处理任务并在UI线程安全更新界面的方法。 总之,C#多线程刷新...
工作线程则是执行非UI相关任务的地方,它们不会阻塞主线程,因此不会影响用户与界面的交互。 创建一个工作线程通常涉及以下步骤: 1. 继承QThread类并重写run()方法:在这个方法中,我们将放置执行耗时任务的代码...
在VB.NET编程中,我们经常会遇到需要执行耗时任务的情况,这些任务可能会导致应用程序的主线程(UI线程)被阻塞,进而使用户界面变得无响应。标题和描述所提及的问题是关于如何在分线程中执行任务,并在主线程卡死时...
为了解决这个问题,我们可以利用Qt提供的多线程机制,将耗时操作转移到子线程执行,以确保主线程能够保持对UI的及时更新。以下将详细讲解如何在Qt中使用多线程防止界面假死,并给出一种有效的方法。 1. Qt中的线程...
总的来说,"InvokeHelper跨线程操作主界面控件"是C#多线程编程中的一个重要实践,它通过封装Invoke或BeginInvoke方法,解决了非UI线程更新UI的问题,提高了代码的可读性和易用性。在实际项目中,合理使用...
"DELPHI7 线程自动刷新"这个主题涉及到的是如何在Delphi 7中使用线程来实现数据或界面的自动更新,以提高程序的响应性和用户体验。 在Delphi 7中,创建线程通常是通过继承自TThread类来完成的。TThread是VCL...
"QT子线程更新主线程"这个主题涉及到如何在后台线程(子线程)执行耗时操作,并将结果安全地传递到用户界面线程(主线程),以避免阻塞UI,保持其流畅性。 Qt库提供了QThread类来支持多线程编程。子线程通常用于...
3. **MFCUI阻塞**:在MFC编程中,阻塞通常是指应用程序的主消息循环被长时间运行的任务阻塞,导致用户界面无法响应。为避免阻塞,可以使用多线程技术,或者将耗时操作放在后台线程执行。同时,可以利用UpdateData或...
在上述示例中,如果需要从网络下载图片并且该操作放在onCreate方法的主线程中,那么这段代码在下载图片期间会阻塞UI线程,导致应用程序无法响应用户操作,造成界面假死状态。 ### 知识点四:子线程的使用场景 子...
当UI线程调用的API可能会导致阻塞时间超过30毫秒时(例如访问CD-ROM等较慢的外部设备或进行远程调用等),应考虑使用多线程。30毫秒这个阈值是因为人眼可以感知到的最小延迟约为30毫秒,如果超过这个时间,用户就会...
在多线程应用中,非UI线程通常用于执行计算密集型任务,以避免阻塞用户界面。为了在非UI线程中与界面交互,我们需要使用各种同步机制,如`PostMessage`,`PostThreadMessage`,`Invoke`(对于COM对象),或者使用C++...
2. **防止UI线程阻塞**:在子线程中执行耗时操作时,要确保不会阻塞UI线程,否则会导致界面卡顿。 3. **资源管理**:在多线程环境下,需要注意资源的管理和释放,避免内存泄漏等问题。 通过上述方法,我们可以有效...
开发者必须确保UI线程不被长时间阻塞,以免影响用户界面的更新和响应。此外,合理利用消息机制可以实现异步操作,提高程序的并发性能。 总的来说,UI线程是应用程序与用户交互的中心,它通过消息队列与操作系统进行...
本文将深入探讨C#中的多线程机制,包括线程互斥与同步,以及如何在WPF主界面中安全地更新UI。 首先,让我们理解什么是多线程。多线程是指一个应用程序内同时运行多个独立的执行线程。在C#中,可以使用`System....
在C#编程中,"使用进度条加载主界面"是一个常见的用户界面(UI)优化技巧,主要用于提升用户体验,让用户能够直观地看到程序的运行状态。本文将深入探讨如何利用进度条来显示主界面的加载过程,同时涉及委托和线程的...
界面卡死的原因是因为耗时任务的计算占用了主线程,导致主界面没有办法进行其它操作。这篇文章将为您介绍如何使用异步编程来避免界面卡死的方法。 首先,需要了解的是,界面卡死的原因是因为耗时任务的计算占用了...