当前位置: 首页 > news >正文

安卓四大组件数据存储Handler

1.活动 activity

1.activity是安卓四大件之一。是用户操作的可视化界面;它为用户提供了一个完整操作指令的窗口。当我们创建完毕activity之后,需要调用setContentView()方法来完成界面的显示;以此来为用户提供交互 的入口。在安卓 APP中只要能看见的几乎都要依托于activity,是开发中使用最频繁的一种组件。

2.一个activity通常就是一个单独的窗口

3.Activity之间是通过Intent进行通信的

4.安卓应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。

5.Activity的生命周期

在安卓中维持一个Activity Stack(栈),当一个新的Activity创建时,它就会放到栈顶,这个Activity就处于运行状态。当再有一个新的Activity被创建后,会重新压人栈顶,而之前的Activity则会在这个新的Activity地下,进入后台 。

一个Activity实质上有四种活跃状态:

a.运行中(Running/Active):这时Activity位于栈顶,是可见的,并且可以和用户交互。

b.暂停(Paused):当Activity失去焦点,不能跟用户交互,但依然可见,就处于暂停状态。当一个新的非全屏的Activity或者一个透明的Activity放置栈顶,Activity就处于暂停状态;这个时候Activity的各种数据还被保持着;只有系统内存存在极低的状态下,系统才会自动识别去销毁Activity。

c.停止(Stoped):当一个Activity被另一个Activity完全覆盖,或者HOME键退回了后台,这时候Activity处于停止状态。这里有些跟暂停状态相似的:这时候Activity的数据也保持着;当别的地方需要用到内存的时候,系统会自动识别区销毁Activity

d.销毁(Ddetroyed):当我们点击返回键或者系统内存不够用的情况就会把Activity从栈中移除销毁,被系统回收,这是就处于销毁状态。

总结:

activity是用户操作的可视化界面,为用户提供了一个完整的操作指令窗口。通过调用setContentView来为用户提供入口。安卓几乎所有界面都依赖于activity,是使用最频繁的组件。一个activity通常就是一个单独的窗口,他们通过Intent进行通信。并且

每一个activity都必须要在xml配置文件中声明否则系统无法识别。

activity存在”运行中,暂停,停止,销毁‘这四种状态,当activity存在栈顶的时候就是运行中,此时用户可以对其进行正常的交互,当activity被另一个透明的activity或者不是全屏的activity挤下栈顶后,就处于暂停状态,此时我们原本的activity依旧可见数据依然保持。当一个activity被另一个activity完全覆盖,处于不可见状态或者我们按下home键时处于停止状态,此时数据依旧会保持但是页面不可见。最后一个就是当我们主动返回键或者系统内存不够了就会移除销毁掉。

onCreate:创建活动。把页面布局加载进内存,进入了初始状态。
onStart:开始活动。把活动页面显示在屏幕上,进入了就绪状态。
onResume:恢复活动。活动页面进入活跃状态,能够与用户正常交互,例如允许相应用户的动作、允许用户输入文字等等。
onPause:暂停活动。页面进入暂停状态,无法与用户正常交互。
onStop:停止活动。页面不在屏幕显示
onDestroy:销毁活动。回收活动占用的系统的资源,把页面从内存中清除。
onRestart:重启活动。重新加载内存中的页面数据。
onNewIntent:重用已有的活动实例

Activity生命周期核心函数​

1. ​​初始化阶段​

onCreate()
首次创建Activity时调用,用于初始化布局、绑定数据、设置监听等基础操作。系统会传递savedInstanceState参数用于恢复因配置更改(如屏幕选择)被销毁前的状态。
onStart()
Activity对用户可见但未获得焦点时触发,常用于界面元素的初始化或资源加载。此时Activity已进入“可见但不可交互状态”
onResume()
Activity进入前台并与用户交互,处于栈顶。适合启动动画、恢复传感器等需要事实交互的操作。

2. ​​暂停与停止阶段​

onPause()
当Activity失去焦点(如弹出对话款或启动新Activity)时调用。必须在此方法中保存关键数据(如用户输入),且需避免耗时操作
onStop
Activity完全不可见触发(如被其他Activity覆盖),可在此处释放非必要资源,但需注意系统可能直接终止进程而跳过此方法

3.重启与销毁阶段

onRestart()
从停止状态(onStop)重新回到前台前调用,用于恢复被临时释放的资源
onDestroy()
Activity被销毁前最后调用的方法,释放所有的资源并且终止后台线程。若Activity因配置变更被销毁重建 此方法会被调用

二、典型场景的调用顺序​

​首次启动Activity​
onCreate()  →  onStart()  →  onResume()
切换到其他Activity​
当前Activity: onPause()  →  onStop()
新Activity: onCreate()  →  onStart()  →  onResume()
​返回原Activity​
当前Activity: onRestart()  →  onStart()  →  onResume()
​返回原Activity​
当前Activity: onRestart()  →  onStart()  →  onResume()

2.内容提供者(Content Provider

1。安卓平台提供了Content Provider使一个应用程序的指定数据集提供给其他程序。其他程序可以通过ContentResolver类从该内容提供者中获取或存入数据。
2。只有需要在多个应用程序间共享数据时,才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式
3.ContentProvider实现数据共享。ContentProvider用户保存和获取数据,并使其对所以应用程序可见。这是不同应用程序间共享数据的唯一方式,因为安卓没有提供所以应用共同访问的公共存储区。
4.开发人间不会之间使用Content Provider类的对象,大多数是通过ContentResolver对象实现对Content Provider的操作。
5.Content Provider使用 URI来唯一标识其数据集,这里的 URI以content://来作为前缀,表示该数据由ContentProvider来管理
总结:
content是安卓中的 内容提供者,它通过 URI对数据集进行 标识管理,然后通过提供某一个程序的 指定数据集另一个程序,来实现数据共享。同时,提供统一的接口,对数据进行 封装,让使用者不必在意数据来源。还提供一种跨进程数据共享的方式: 数据更新通知机制。当一个应用改变了共享数据的时候,它会通知其他应用程序,让其他程序进行相应的处理。
数据存储方式对比:
存储方式
适用场景
优点
缺点
​SharedPreferences​
简单键值对配置(用户设置、应用配置)
- 使用简单
- 自动持久化
- 支持类型安全
- 仅支持基本数据类型
- 不适合大数据量
http://www.lqws.cn/news/157051.html

相关文章:

  • React从基础入门到高级实战:React 实战项目 - 项目一:在线待办事项应用
  • Kafka入门-消费者
  • 作为过来人,浅谈一下高考、考研、读博
  • 关于akka官方quickstart示例程序(scala)的记录
  • UDP:简洁高效的报文结构解析与关键注意事项
  • 计算机网络备忘录
  • 网络通信核心概念全解析:从IP地址到TCP/UDP实战
  • ​减少交通拥堵、提高效率、改善交通安全的智慧交通开源了。
  • CodeGeeX 本地模式
  • Golang——9、反射和文件操作
  • 使用SSH tunnel访问内网的MySQL
  • VSCode主题定制:CSS个性化你的编程世界
  • nginx.conf配置详解:从(413 Request Entity Too Large)说起
  • 《前端面试题:CSS的display属性》
  • 基于SpringBoot和PostGIS的OSM时空路网数据入库实践
  • 六、数据库的安全性
  • 【AI学习】KV-cache和page attention
  • 04-初识css
  • CICD实战(二)-----gitlab的安装与配置
  • 一文读懂 ZFS RAIDZ:深度解析 RAIDZ 类型、模式、配置和应用场景
  • nginx
  • 建筑设备一体化监控系统:提升能效与运维效率
  • 【面经分享】京东
  • OpenResty 安装指南
  • Linux磁盘管理与文件系统
  • 服务器重启后配置丢失怎么办?
  • Docker 与容器技术的未来:从 OCI 标准到 eBPF 的演进
  • es在Linux安装
  • 无人机避障与视觉跟踪技术分析!
  • 代码随想录 算法训练 Day23:回溯算法part02