首页 > 其他分享 >Android(digest)

Android(digest)

时间:2022-10-07 17:31:22浏览次数:60  
标签:Content URI content Activity Android ContentProvider digest

Android开发者文档这么说的:

Content providers manage access to a structured set of data. They encapsulate the data, and provide mechanisms for defining data security.

通俗的说,ContentProvider是一种数据包装器。它提供统一的接口对数据进行操作,使用者不用关心数据到底是如何存储的以及数据类型到底是什么。ContentProvider将数据封装好了,这样就能方便的管理数据了。它主要用于不同应用间,不同进程间的信息的共享

Android(digest)_android

为什么有ContentProvider?

大家都知道,涉及到数据的访问就要考虑到数据的安全性。怎样在保证数据的安全性的同时,又能方便的访问数据呢?

众所周知,Android系统是基于Linux内核的。在Linux中,文件具有如下图中的一系列属性,如文件权限。不同的用户或用户组对文件有不同的读写,执行的权限。如图中的r(Read),w(Write),x(Execute),-(无权限)。

Android是基于Linux的,也继承了Linux的文件管理方式,通常每个应用都是独立的进程,也就是不同的用户。Android为每个应用程序分配了独立的用户ID和用户组ID。并且由这个应用程序创建出来的文件被赋予了相应的读写权限。其他应用程序无权访问。

这样就保证了数据的安全性,但是这对数据的共享给第三方造成了不便。Android系统的开发者为了解决了这个问题,设计了ContentProvider类。Content Provider很好的兼顾了二者。

1.3Android官方的ContentProvider

Android官方为了便于第三方开发者开发,提供了一些ContentProvider。这些标准的Provider都定义在了​​android.provider​​中。

Android(digest)_android_02

2.Content URI

在了解Content URI之前,先了解下URI.

URI:通用资源标识符(Uniform Resource Identifier, 简称"URI")主要用于Web上可用的每种资源 -HTML文档、图像、视频片段、程序等 - 进行定位。

Android上的资源也可以用URI表示。

Android(digest)_android_03

文档中是这么描述URI的:

A content URI is a URI that identifies data in a provider. Content URIs include the symbolic name entire provider (its authority) and a name that points to a table (a path). Content URI由三部分组成:"content://"、主机名(或理解为域名authority)、path(路径,其中id可选)。

例如:

用户字典的单词表: ​​content://user_dictionary/word​

设备上存储的所有图片: ​​content://media/internal/images​

联系人信息: ​​content://contacts/people​

某个人的联系人信息: ​​content://contacts/people/1​

使用URI的parse方法将字符串转换为Uri: ​​<Uri uri = Uri.parse("content://com.ijtsai.contactprovider/people");>​

 

       这些方法定义了Activity完整的生命周期,实现这些方法,我们能监控Activity生命周期中的三个嵌套循环(monitor three nested loops in the activity lifecycle)

 

        1.Activity的entire lifetime(全部的生命期)发生在

                              调用onCreate()和调用onDestory()之间。

        在onCreate()方法中执行全局状态的建立(例如定义布局),在onDestroy()方法中释放所有保存的资源。



       2.Activity的visible lifetime(可见的生命期)发生在

                              调用onStart()onStop()之间。

         在这个期间,用户能在屏幕上看见Activity,和它进行交互。

        系统在Activity的完整寿命中可能多次调用onStart()和onStop(),正如Activity交替地对用户可见或隐藏。


      3Activity的foreground lifetime (前台的生命期)发生在

                               调用onResume()onPause()之间。

       在这期间,Activity在屏幕上所有其他Activity的前面,有用户输入焦点。

       一个Activity能频繁的在前台进入和出去之间转变。

Android(digest)_数据_04

Android(digest)_数据_05

 

 



标签:Content,URI,content,Activity,Android,ContentProvider,digest
From: https://blog.51cto.com/u_15147537/5734747

相关文章

  • Android 自定义View - 柱状波形图 wave view
    前言柱状波形图是一种常见的图形。一个个柱子按顺序排列,构成一个波形图。柱子的高度由输入数据决定。如果输入的是音频的音量,则可得到一个声波图。在一些音频软件中,我们也可......
  • android notification
    //创建普通通知StringchannelId="测试渠道";if(android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.O){......
  • Android 小项目之--解析如何获取SDCard 内存
    1、讲述Environment类。2、讲述StatFs类。3、完整例子读取SDCard内存1、讲述Environment类Environment是一个提供访问环境变量的类。Environment 包含常量:​​MED......
  • android之定时器AlarmManager .
     果图:      当我们点击定时时,会弹出一个时间选择器,选定好时间之后,系统便可以进行定时了。注意,这里可不是会真的响铃,我们在定时的任务里并没有......
  • Android中的JSON详细总结
    1、JSON(JavaScriptObjectNotation)定义:一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得......
  • Android开发之PreferenceActivity .
    今天我们来讲PreferenceActivity的使用。我们先来认识一下它,看看它长什么样?呵呵,截图如下:看到没?这就是PreferenceActivity.看起来蛮眼熟的,在哪见过。呵呵,对,在我们得模拟器“......
  • Android软件开发之盘点自定义View界面大合集
    今天我用自己写的一个Demo和大家详细介绍一个Android中自定义View中的使用与绘制技巧。1.自定义view绘制字符串            相信在实际开发过程中必然很多......
  • Android 设置主题实现点击波纹效果
    开头先说说大家都知道的MaterialDesign。这里推荐​​大苞米​​的系列博客,介绍的很全面。MaterialDesign:MaterialDesign是Google推出的一个全新的设计语言,它的特点就是......
  • Android中 android:gravity 和 android:layout_gravity的区别
    在配置xml布局时,经常用到 android:gravity 和 android:layout_gravity这两个属性,这里记录一下他们的区别。1.android:gravity android:gravity常用于控制view的内部......
  • Action Bar使用方法 - Android活动栏(一)
     ActionBar主要功能包含: 1.显示选项菜单 2.提供标签页的切换方式的导航功能,可以切换多个fragment. 3. 提供下拉的导航条目. 4.提供交互式活动视图代替选......