我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android数据有哪些存储方式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android数据有哪些存储方式

本篇文章为大家展示了Android数据有哪些存储方式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制。一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制。并且此种方式忽略了底层的数据存储实现,ContentProvider提供了一种统一的通过Uri实现数据操作的方式。其步骤为:

  1. 在当前应用程序中定义一个ContentProvider。

  2. 在当前应用程序的AndroidManifest.xml中注册此ContentProvider

  3. 其他应用程序通过ContentResolver和Uri来获取此ContentProvider的数据。

  ContentResolver提供了诸如insert(), delete(), query()和update()之类的方法。用于实现对ContentProvider中数据的存取操作。

  Uri是一个通用资源标志符,将其分为A,B,C,D 4个部分:

    A:无法改变的标准前缀,包括;"content://"、"tel://"等。当前缀是"content://"时,说明通过一个Content Provider控制这些数据  

    B:URI的标识,它通过authorities属性声明,用于定义了是哪个ContentProvider提供这些数据。对于第三方应用程序,为了保证URI标识的唯一性,它必须是一个完整的、小写的   类名。例如;"content://com.test.data.myprovider"  

    C:路径,可以近似的理解为需要操作的数据库中表的名字,如:"content://hx.android.text.myprovider/name"中的name

    D:如果URI中包含表示需要获取的记录的ID;则就返回该id对应的数据,如果没有ID,就表示返回全部;

  下面通过是代码示例,演示一下如何在应用之间相互获取数据。

  在应用程序A中,继承ContProvider类,并重写其中方法。

public class MyProvider extends ContentProvider{
     @Override
     public int delete(Uri uri, String selection, String[] selectionArgs) {
         // TODO Auto-generated method stub
         return 0;
     }
 
     @Override
     public String getType(Uri uri) {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Uri insert(Uri uri, ContentValues values) {
         return null;
     }
 
     //在Create中初始化一个数据库
     @Override
     public boolean onCreate() {
         SQLiteDatabase db = this.getContext().openOrCreateDatabase("test_db.db3", Context.MODE_PRIVATE, null);
         db.execSQL("create table tab(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL)");
         ContentValues values = new ContentValues();
         values.put("name", "test");
         db.insert("tab", "_id", values);
         db.close();
         return true;
     }
 
     //实现query方法
     @Override
     public Cursor query(Uri uri, String[] projection, String selection,
             String[] selectionArgs, String sortOrder) {
         SQLiteDatabase db = this.getContext().openOrCreateDatabase("test_db.db3", Context.MODE_PRIVATE, null);
         Cursor c = db.query("tab", null, null, null, null, null,null);
         return c;
     }
 
     @Override
     public int update(Uri uri, ContentValues values, String selection,
             String[] selectionArgs) {
         // TODO Auto-generated method stub
         return 0;
     }
 }

在其AndroidManifest.xml中声明此ContentProvider,其中authorities属性定义了此ContentProvider的Uri标识。

<provider android:name=".MyProvider" android:authorities="com.test.MyProvider"/>

在应用程序B中,通过ContentResolver获取程序A的ContentProvider中的数据。

public class MainActivity extends Activity {
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
         
         //获取上下文
         Context ctx = MainActivity.this;
         //获取ContentResolver对象
         ContentResolver resolver = ctx.getContentResolver();
         //获取Uri对象
         Uri uri = Uri.parse("content://com.test.MyProvider");
         //获取数据
         Cursor c = resolver.query(uri, null, null, null, null);
         c.moveToFirst();
         for(int i=0; i<c.getCount(); i++){
             int index = c.getColumnIndexOrThrow("name");
             String class="lazy" data-src = c.getString(index);
             Log.d("", class="lazy" data-src);
             c.moveToNext();
         }
     }
 }

应用程序B的运行结果如下,从此图可以发现我们在程序B中成功的获取到了程序A中的数据:

Android数据有哪些存储方式

  再观察两个应用程序的结构,如下图,其中红框是应用程序A的程序结构,可以清楚看到其有一个名为“test_db.db3”的数据库,蓝框是应用程序B的程序结构,其并没有任何数据库用于存储数据。由此图,可以确定应用程序B中查询出来的数据结果是来自于应用程序A。

Android数据有哪些存储方式

上述内容就是Android数据有哪些存储方式,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android数据有哪些存储方式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

android数据存储方式有哪些

Android有多种数据存储方式,包括:1. SharedPreferences:用于存储简单的键值对,适用于存储应用的配置信息等小量数据。2. 文件存储:可以使用内部存储和外部存储来存储文件,适用于存储一些大文件或复杂数据。3. SQLi
2023-08-11

Android数据存储的方式有哪些

Android中常用的数据存储方式有以下几种:1. Shared Preferences:用于存储键值对数据,适用于存储简单的配置信息。2. Internal Storage:将数据存储在应用的内部存储空间中,适用于存储私有数据。3. Ex
2023-09-20

android数据存储与访问的方式有哪些

Android数据存储与访问的方式有以下几种:1. Shared Preferences(共享首选项):用于存储简单的键值对数据,适用于存储用户设置、应用配置等。2. Internal Storage(内部存储):将数据存储在应用的私有文件
2023-09-04

android的存储方式有哪些

Android的存储方式有以下几种:1. 内部存储(Internal Storage):应用程序可以将文件存储在设备的内部存储空间中,这些文件只能被应用程序自身访问。可以使用Context的getFilesDir()方法获取内部存储目录。2
2023-08-26

android数据存储方式有哪几种

Android数据存储方式有以下几种:1. Shared Preferences(共享偏好设置):用于存储简单的键值对,适用于存储少量的简单数据,如设置项、用户偏好等。2. 文件存储:可以将数据存储到内部存储(Internal Storag
2023-09-27

Android 数据存储方式有哪几种

以下内容给大家介绍Android数据存储提供了五种方式: 1、SharedPreferences 2、文件存储 3、SQLite数据库 4、ContentProvider 5、网络存储本文主要介绍如何使用文件来存储数据。Android文件操
2022-06-06

hbase数据存储方式有哪些

HBase是一个分布式的、面向列的、基于Hadoop的数据库,其数据存储方式主要有以下几种:列簇(Column Family):HBase中的数据是按列簇进行存储的,每个列簇包含多个列族(Column Family),每个列族包含多个列(C
hbase数据存储方式有哪些
2024-04-16

android存储数据的方法有哪些

在Android中,存储数据的方法主要有以下几种:SharedPreferences:用于存储简单的键值对数据,适合存储一些小型的配置信息。文件存储:可以通过FileOutputStream和FileInputStream类来读写文件,适
android存储数据的方法有哪些
2024-04-09

android存储方式有哪些特点

Android存储方式有以下几种特点:1. 内部存储:内部存储是设备自带的存储空间,一般用于存储应用的私有数据,例如数据库、缓存文件等。内部存储的特点是数据安全性较高,其他应用无法直接访问,但是存储空间有限,用户无法直接管理和扩展。2. 外
2023-08-12

javascript存储数据的方式有哪些

这篇文章主要介绍了javascript存储数据的方式有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。javascript存储数据有三种方式:1、sessionStorag
2023-06-14

android保存数据的方式有哪些

Rate limit reached for gpt-3.5-turbo in organization org-68Lqb4iD2GUhNJWqRdyhiGwp on requests per day. Limit: 200 / day.
2023-10-18

c语言存储数据的方式有哪些

C语言存储数据的方式有以下几种:变量:通过定义变量来存储数据。变量可以是基本数据类型(int、float、char等)或自定义的结构体类型。数组:数组是一种用于存储多个相同类型数据的数据结构。可以定义一维或多维数组,通过索引访问其中的元素。
c语言存储数据的方式有哪些
2024-04-09

Storm数据存储和输出方式有哪些

Storm 数据存储和输出方式有以下几种:数据存储:Storm 支持将数据存储到各种数据库中,如关系型数据库(如 MySQL、PostgreSQL)、NoSQL 数据库(如 Cassandra、MongoDB)等。此外,Storm 还支持将
Storm数据存储和输出方式有哪些
2024-04-09

常见的数据库存储方式有哪些

常见的数据库存储方式包括:1. 关系型数据库:使用表格的形式存储数据,如MySQL、Oracle、SQL Server等。2. 非关系型数据库:使用键值对、文档、图形等形式存储数据,如MongoDB、Redis、Cassandra等。3.
2023-06-08

android数据存储的优点有哪些

Android数据存储的优点包括:1. 灵活性:Android提供了多种存储选项,包括Shared Preferences、SQLite数据库、文件存储和网络存储。开发者可以根据需要选择合适的存储方式。2. 方便性:Android提供了一系
2023-09-27

编程热搜

目录