摘要: 介绍 BroadcastReceiver 即广播组件,是 Android 的四大组件之一。 用于监听和接收广播消息,并做出响应 。有以下一些应用: 不同组件之间的通信(应用内或不同应用之间)。 多线程之间通信。 与系统在特定情况下(例如,电话呼入时、网络可用时)的通信。 原理 Android 中的广 阅读全文
posted @ 2019-08-26 19:25 银色子弹 阅读(711) 评论(0) 推荐(0) 编辑
摘要: Android 为什么要用消息处理机制 如果有多个线程更新 UI,并且没有加锁处理,会导致界面更新的错乱,而如果每个更新操作都进行加锁处理,那么必然会造成性能的下降。所以在 Android 开发中,为了使 UI 操作是线程安全的,规定只许主线程即 UI 线程可以更新 UI 组件。但实际开发中,常常会 阅读全文
posted @ 2019-06-04 21:09 银色子弹 阅读(4992) 评论(0) 推荐(1) 编辑
摘要: 垃圾回收机制的意义 在 C++ 开发中管理内存是一个很麻烦的问题,而 Java 引入了垃圾回收机制,开发者不需要手动去管理内存的分配和回收问题,一切都交给 JVM 通过垃圾回收机制处理,同时有效的防止了内存泄漏的问题。 Java 语言规范中并没有明确的指定 JVM 使用哪种回收算法,但通常回收算法主 阅读全文
posted @ 2017-02-26 16:49 银色子弹 阅读(2265) 评论(0) 推荐(2) 编辑
摘要: 四种引用类型的概念 强引用 StrongReference 如果一个对象具有强引用,那么垃圾回收器绝对不会回收它,当内存不足时宁愿抛出 OOM 错误,使得程序异常停止。 即是一个强引用。 软引用 SoftReference 如果一个对象只具有软引用,那么垃圾回收器在内存充足的时候不会回收它,而在内存 阅读全文
posted @ 2017-02-26 01:40 银色子弹 阅读(7571) 评论(0) 推荐(1) 编辑
摘要: 引入线程池的原因 通常我们需要使用线程去完成某项任务的时候都会去创建一个线程,一般都会这么写: 这样操作直接且简单,当然是没有错的,但是却存在这一些问题。在应付一些线程并发不多的情况时是完全够用的,但是如果并发的线程数量很多,就会造成系统的效率降低。主要会造成如下影响: 频繁创建和销毁线程占用大量不 阅读全文
posted @ 2017-02-25 21:15 银色子弹 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 使用介绍 开发中经常会遇到一些和倒计时有关的场景,比如发送验证码的按钮,会在点击发送后,显示倒计时间,倒计时结束后才能够刷新按钮,再次允许点击。为了不阻塞软件的运行,又要实时刷新界面,我们通常会用到 Handler 或者 AsyncTask 等技术,自己写逻辑实现。其实 Android 中已经封装好 阅读全文
posted @ 2017-02-24 20:28 银色子弹 阅读(1991) 评论(0) 推荐(0) 编辑
摘要: 关于 Android 手机横竖屏切换时 Activity 的生命周期问题,网上有很多相似的文章,大多数都是说明在竖屏切换横屏时 Activity 会重启一次,而在横屏切换竖屏时 Activity 会重启两次。 我本身不太理解这样设计的意义,并且觉得新版本会解决这个问题,所以做了一项测试,测试环境为 阅读全文
posted @ 2017-02-22 13:00 银色子弹 阅读(2963) 评论(0) 推荐(1) 编辑