- 博客(6)
- 收藏
- 关注
原创 settings快速搜索逻辑梳理
从android5.1 开始,google为用户提供了一种很方便的搜索功能,用户可以很方便的在settings中搜索setting里或者系统其他配置了指定继承自SearchIndexablesProvider的应用的设置选项,这样做极大的提高了搜索效率。本文依据Android8.1为基础,粗线条梳理一下快速搜索的索引逻辑。SettingsActivity.java,此函数在setting...
2018-10-26 20:01:01
655
原创 context.getSystemService分析
在代码中,经常需要调用系统服务,以下面代码片段为例:private Set<Map.Entry<String, AutomaticZenRule>> getZenModeRules() { Map<String, AutomaticZenRule> ruleMap = NotificationManager....
2018-10-23 16:10:22
1084
原创 来聊聊观察者模式
作为最简单的设计模式,观察者也是应用的相当广泛,看看官方是怎么说的: 观察者模式:定义了对象一对多的依赖,这样一来,当对象改变时,它的所有依赖者都会受到通知并自动更新。下面考虑一个气象站的例子来实现观察者模式,气象指数一旦有变化,分布在两个地方的显示屏实时更新,考虑以下:1.一旦气象站数据有更新,观察者(负责显示的设备)必须第一时间知道,而且通知的方式不是观察者向数据源索取,观察者没有那么多精
2017-11-17 19:10:39
185
原创 SharedPreferences的封装
SharedPreferences是Android提供的一种存储数据的机制,用于存储少量数据,数据类型包括(boolean 、int、long、float、string),主要用于存储应用的配置信息,例如:用户名、密码、是否开启震动、音乐等。 它实际上是以键值对的形式储存在xml文件中。存储位置:data/data/程序包名/shared_prefs/ 目录下。 如果不是系统应用,比如APK开发
2017-10-18 17:53:26
326
原创 Handler用法简介
Handler用法简介: Handler是androd中必须学会的内容,其实使用是非常简单的,不过有必要再啰嗦一下,算是复习: 创建Handler: 我常用的有两种方法: new Handler(); //没有指定Looper,那么默认Looper为当前线程 new Handler(Looper looper); //指定looper为参数looper 那么这两种方式使用
2017-09-07 12:51:51
323
原创 Android调用相机的那些事
调用相机其实很简单,不过其实也有一些坑,现在记录下来: 先看调用代码:private void toCamera() {File file = new FileStorage().createIconFile();if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){ oriImageUri = FileProvider.getUriF
2017-09-01 13:48:03
246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人