摘要: 解析Android消息处理机制——Handler/Thread/Looper & MessageQueueKeywords: Android Message HandlerThread Looper UML 本文解析Android如何利用Handler/Thread/Looper以及MessageQueue来实现消息机制的内部实现。知道了它的内部实现机理之后,以后再遇到使用它们时候的任何问题就驾轻就熟、迎刃而解了。 Android利用执行在HandlerThread线程中的Looper的相应消息分发/处理,与其他线程中的消息发送结合,实现完整的消息处理机制。 本文首先介绍这些消息处理过 阅读全文
posted @ 2012-03-26 10:38 tgwtt 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 编写高效的android代码(译文)虽然这篇文章已经有了几个译本,不过参详过发现其中很多字句并非原文本意,下面是我自己翻译的版本,若有不妥之处,请指正。编写高效的android代码无论怎样,基于android的设备也是嵌入式设备。现代的手持设备,与其说是电话,更像一台拿在手中的电脑。但是,即使是“最快”的手持设备,其性能也达不到一台普通的台式电脑。这就是为什么我们在书写Android应用程序的时候要格外关注效率。这些设备并没有那么快,并且受电池电量的制约。这意味着,设备没有更多的能力,我们必须把程序写的尽量有效。本文讨论了很多能让开发者使他们的程序运行更有效的方法,遵照这些方法,你可以使你的程 阅读全文
posted @ 2012-03-14 10:09 tgwtt 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 相关的变量: PowerManager powerManager = null; WakeLock wakeLock = null;初始化: powerManager = (PowerManager) this .getSystemService(Service.POWER_SERVICE); wakeLock = this.powerManager.newWakeLock( PowerManager.SCREEN_DIM_WAKE_LOCK, "My Lock");开启屏幕常亮: wakeLock.setReferenceCounted(false); wakeLock. 阅读全文
posted @ 2012-03-07 10:37 tgwtt 阅读(7778) 评论(0) 推荐(2) 编辑
摘要: 使用 onRetainNonConfigurationInstance(),实现快速旋转例子如下:public class ACompatibilityActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); if(getLastNonCon... 阅读全文
posted @ 2012-03-05 16:29 tgwtt 阅读(223) 评论(0) 推荐(0) 编辑