知识点杂记

android四大组件分别为activity、service、content provider、broadcast receiver。

+++++++++++++++++++++++++++++++++++++==========================

1获取SharedPreferences的实例对象的方法**
可以分为三部曲:
获取sharePreferences对象,并通过sharePreferences.edit()来获取Editor类的对象
通过editor类的键值对方式存储数据,如putBoolean(),putString(),putInt()等
通过editor.commit()方法
三部曲:

1.获取sharePreferences对象,并通过sharePreferences.edit()来获取Editor类的对象,可以比作一支笔;

2.通过editor类的键值对方式存储数据,如putBoolean(),putString(),putInt()等,这可以比作要写什么内容到纸张上;

3.通过editor.commit()方法把数据提交,完成数据的存储

现知道了sharePreferences的存储步骤,那么有几种方法来获取sharePreferences对象呢?目前可以通过以下的三种来获取:

第一:通过Context类的getSharedPreferences方法获取,传入的参数分别是文件名,Context.常量(文件的存储模式)

MODE_PRIVATE :表示私有方式存储,其他的应用无法访问;

MODE_APPEND:追加方式存储

MODE_WORLD_READABLE:表示当前文件可以被其他的应用读取,但是不能写入

MODE_WORLD_WRITERABLE:表示 当前文件可以被其他应用写入

第二:可以通过Activity类的getPreferences(Mode) 方法获取;

第三:可以通过PreferenceManager类的getDefaultSharedPreferences()来获取;

案例如下:

    //一:通过Context去获取SharedPreferences对象
    SharedPreferences sp =  mContext.getSharedPreferences("文件名",Context.MODE_PRIVATE);
    SharedPreferences.Editor  editor = sp.edit();
    editor.putBoolean("boolean",false);
    editor.putString("String", "str");
    editor.commit();

    //二:通过Activity 获取SharedPreferences对象
    SharedPreferences sp2 = getPreferences(Context.MODE_PRIVATE);
    SharedPreferences.Editor  editor2 = sp2.edit();
    editor2.putBoolean("boolean",false);
    editor2.putString("String", "str");
    editor2.commit();

    //三:PreferenceManager
    SharedPreferences sp3 =  PreferenceManager.getDefaultSharedPreferences(mContext);
    SharedPreferences.Editor  editor3 = sp3.edit();
    editor3.putBoolean("boolean",false);
    editor3.putString("String", "str");
    editor3.commit();

原文链接:https://blog.csdn.net/qq_36714156/article/details/89302543
+++++++++++++++++++++======================
观察特定Uri的步骤如下:
1、 创建我们特定的ContentObserver派生类,必须重载父类构造方法,必须重载onChange()方法去处理回调后的功能实现
2、 利用context.getContentResolover()获得ContentResolove对象,接着调用registerContentObserver()方法去注册内容观察者
3、 由于ContentObserver的生命周期不同步于Activity和Service等,因此,在不需要时,需要手动的调用
unregisterContentObserver()去取消注册。
好了,基本讲解就介绍到这儿了。下面给出小DEMO的简单说明:
Demo中共有两个不同的ContentObserver派生类,如下:
1、用来观察系统是否改变了飞行模式状态,
PS: 大家可以去SDK中查看该类:android.provider.Settings.System。该类封装了对设置模块下所有值的存取,比如:
飞行模式状态、蓝牙状态、屏幕亮度值等,并且提供了相应的Uri。
2、观察系统的短信息数据发生了变化。当监听到短信数据发生变化时,查询所有已发送的短信并且显示出来。

短信的Uri共有一下几种:
content://sms/inbox 收件箱
content://smsnt 已发送
content://sms/draft 草稿
content://sms/outbox 发件箱 (正在发送的信息)
content://sms/failed 发送失败
content://sms/queued 待发送列表 (比如开启飞行模式后,该短信就在待发送列表里)
原文链接:https://blog.csdn.net/qinjuning/article/details/7047607

==++++=
广播接收者必须在清单文件中注册之后才能接收广播。(×)

解析:

广播接收者注册分为两种:常驻型(静态)和非常驻型(动态)。前者就是在清单文件中注册,如果此程序关闭,如果接收到其他程序的对应广播,可能也会自动开启(Android 4.0以上系统出于安全考虑不会这样了);而后者就是在代码里创建IntentFilter,set一下action,动态注册,在接收到消息后销毁,不再活跃,它依赖于注册广播组件的生命周期和unregisterReceiver()。

原文链接:https://blog.csdn.net/weixin_44677382/article/details/116406668

=====++++++++++++++++++++++++++++++++++++++++++++++++++=
服务通信的描述:
AIDL语言,即android interface definition language
AIDL语言语法很简单,语法跟Java接口很相似,但存在如下差异:
AIDL定义接口的源代码,必须以.aidl结尾
AIDL接口中用到的数据类型,除了基本类型,String,List,Map,CharSequence之外,其他类型全部都需要导包,即使他们在同一个包中也需要导入包。

原文链接:https://blog.csdn.net/a946898963/article/details/50788917

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值