android 广播解绑,【安卓开发系列 -- APP】APP 开发基础技术整理

【安卓开发系列 -- APP】APP 开发基础技术整理

【1】Android Studio APP 项目目录布局

98d586feb7e5182220881a7f5c714586.png

7bb6e55c5d5f6e9f0ea487f20d415bd7.png

9a6f16a905e183fb2a52117aef580a67.png

90bd31d398aab03a8979b65f052a35e4.png

【2】活动的生命周期

活动的状态 :

1. 运行状态,一个活动位于返回栈栈顶时,活动处于运行状态;

2. 暂停状态,一个活动不再处于栈顶,但仍然可见;

3. 停止状态,一个活动完全不处于栈顶并且完全不可见;

4. 销毁状态,一个活动从栈顶移除;

81dc6fd28230b378766efaa29099badc.png

3f3608a878b1bd257bf86f531366f74c.png

活动的启动模式

1. Standard,在不进行显示指定的情况下,所有活动默认使用该模式,该模式下系统不会判断活动是否已经存在于返回栈中,每次启动都会创建该活动的一个新的实例;

2. SingleTop,若该活动已经处于栈顶,则可以直接使用该活动,不再创建新的活动实例;

3. SingleTask,每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,若发现已经存在可以直接使用的该活动的实例,并将该活动之上的所有活动全部出栈,若没有发现则创建一个新的活动的实例;

4. SingleInstance,启动一个新的返回栈用于管理该活动,多用于解决共享活动实例的问题;

7bce208edaa6dd26eeb023f79f2e33c7.png

41cfcaf8b6c4b2bd73f8d6778268e2e6.png

【3】碎片探究

碎片,一种可以嵌入在活动当中的 UI 片段,它能够更加合理和充分地利用大屏幕的空间;

手机和平板的 UI 设计方案

?i=20190911231749107.JPG?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3Nzg4MTc3,size_16,color_FFFFFF,t_70

碎片的生命周期

1. 运行状态,碎片是可见的,并且它所关联的活动正处于运行状态;

2. 暂停状态,一个活动进入暂停状态时,与它相关联的可见碎片便会进入到暂停状态;

3. 停止状态,一个活动进入停止状态时,与它相关联的可见碎片便会进入到停止状态,或者通过调用 FragmentTransaction 的 remove()、 replace() 方法将碎片从活动中移除,但在事务提交之前调用  addToBackStack() 方法时碎片也会进入停止状态;进入停止状态的碎片对于用户是完全不可见的,可能会被系统回收;

4. 销毁状态,一个活动被销毁时,与其相关联的碎片便会进入到销毁状态,或者通过调用 FragmentTransaction 的 remove()、 replace() 方法将碎片从活动中移除,但在事务提交之前没有调用 addToBackStack() 方法时碎片也会进入销毁状态;

21b274af1f3358a57f05fe433c2d145a.png

常用限定符

d275ee3d194946baa4c034337e87d1f6.png

【4】安卓广播机制

安卓广播类型

1. 标准广播,完全异步执行的广播,广播发出后所有的广播接收器同时受到广播消息;

2. 有序广播,同步执行的广播,同一时刻只有一个广播接收器能够接收到这条广播消息,并且前面的广播接收器能够截断广播的传递;

269570eca83b5428885ca667093544d3.png

【5】数据存储 -- 持久化技术

Android 提供了 3 种简单实现数据持久化功能的方式

1. 文件存储,不对存储的内容进行任何格式化的处理,适合存储简单的文本数据或二进制数据;

2. SharedPreference 存储,使用键值对方式存储数据,支持多种不同的数据类型存储;

3. 数据库存储,SQLite 和 LitePal;

SQLite : 一款轻量级的关系型数据库,运算速度快且占用资源少,支持 SQL 语法,遵循 ACID 事务;

LitePal : 开源的 Android 数据库框架,采用对象关系映射(ORM)的模式,封装了常用的一些数据库功能;

对象关系映射(ORM) : 将面向对象的语言和面向关系的数据库之间建立的一种映射关系;

【6】跨程序共享数据 -- 内容提供器

内容提供器,用于在不同的应用程序之间实现数据共享的功能,提供完整的机制使得一个程序可以访问另一个程序中的数据,同时还能保证被访问数据的安全型;内容提供器可以有选择性的确定共享的数据;

运行时权限

Android 权限分类 :

1. 普通权限,不会直接威胁到用户的安全与隐私的权限,这些权限系统会自动帮助我们进行授权;

2. 危险权限,涉及用户隐私等重要信息,必须由用户授权;

Android 中的所有危险权限统计表

b5e4ee6e2fbc3644ee6bf04fcda8e660.png

注意 : 表格中每个危险权限都属于一个权限组,在进行运行时权限处理时使用的时权限名,用户一旦同意授权,意味着该权限对应的权限组中所有的其他权限也会同时被授权;

访问其他程序中的数据

1. 使用现有的内容提供器

ContentResolver 类,通过 Context 中的 getContentResolver()方法获取该类的实例,借助 ContentResolver 进行 CRUD 操作即可;

2. 使用自定义的内容提供器

自定义一个内容提供器并继承 ContentProvider 类,实现其中的抽象方法;

【7】Android 服务

服务,Android 中实现程序后台运行的解决方案,适合于处理那些不需要和用户交互而且需要长期运行的任务;

注意 : 服务依赖于创建服务时所在的应用程序进程;

Android 多线程

Android 的多线程技术与 JAVA 类似;

Android 异步消息处理机制

组成构件 : Message、Handler、MessageQueue、Looper;

Message : 线程之间传递的消息;

Handler : 用于发送和处理消息,发送消息 : Handler.sendMessage() 方法,处理消息 : Handler.handleMessage() 方法;

MessageQueue : 消息队列,用于存放通过 Handler 发送的消息,每个线程中只会存在一个 MessageQueue 对象;

Looper : 用于管理 MessageQueue,调用 Looper 的 loop() 方法后,便进入一个无限循环当中,每当发现 MessageQueue 中存在一条消息,便将消息取出,传递到 Handler 的 handleMessage() 方法中;每个线程中只会存在一个 Looper 对象;

8bf6810713ebf15b9ee8a0890acea577.png

服务的生命周期

87270092167b1700ad915016886be6ac.png

生命周期调用

1)启动Service服务

单次:startService() —> onCreate() —> onStartCommand()

多次:startService() —> onCreate() —> onStartCommand() —> onStartCommand()

2)停止Service服务

stopService() —> onDestroy()

3)绑定Service服务

bindService() —> onCreate() —> onBind()

4)解绑Service服务

unbindService() —> onUnbind() —> onDestroy()

5)启动绑定Service服务

startService() —> onCreate() —> onStartCommand() —> bindService() —> onBind()

6)解绑停止Service服务

unbindService() —> onUnbind() —> stopService() —> onDestroy()

7)解绑绑定Service服务

unbindService() —> onUnbind(ture) —> bindService() —> onRebind()

参考

本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。

标签:状态,权限,APP,碎片,广播,开发,Android,活动,安卓

来源: https://blog.csdn.net/qq_27788177/article/details/100714635

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值