安卓开发之利用contentprovider进行数据获取
生活随笔
收集整理的這篇文章主要介紹了
安卓开发之利用contentprovider进行数据获取
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
簡述:
contentprovider:是安卓四大組件之一,是實(shí)現(xiàn)應(yīng)用程序間數(shù)據(jù)共享最標(biāo)準(zhǔn)的方式。
若A提供數(shù)據(jù)給B,則A寫contentprovider,B寫resolver將數(shù)據(jù)釋放出來。
本次實(shí)驗(yàn)將自建一個(gè)provider,然后在另一個(gè)app中使用resolver調(diào)用這個(gè)provider。
1.寫resolver的app
主要代碼
package com.example.appp1;import androidx.appcompat.app.AppCompatActivity;import android.content.ContentResolver; import android.content.ContentValues; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button;public class MainActivity extends AppCompatActivity {public Button button;private static final String AUTHORITY="lxy.Provider1";private static final Uri NOTIFY_URI=Uri.parse("content://"+AUTHORITY+"/person");@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button=findViewById(R.id.button);ContentResolver resolver=getContentResolver();Uri uri=Uri.parse("content://lxy.provider2/student");ContentValues values=new ContentValues();values.put("id",1);values.put("name","lxy");values.put("age","20");button.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View view) {resolver.insert(uri,values);}});} }界面
?2.寫provider的APP
主要代碼
package com.example.provider;import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.net.Uri;public class MyDAO { //操作數(shù)據(jù)對象的method方法private Context context;private SQLiteDatabase datebase;public MyDAO(Context context){this.context=context;MyDBhelper dBhelper=new MyDBhelper(context,"lxy",null,1);datebase=dBhelper.getWritableDatabase();}public Uri lxyInsert(ContentValues contentValues ){ContentValues values1 = new ContentValues();Uri uri=Uri.parse("content://lxy.provider2/student");Uri inserturi;long rowId=datebase.insert("student",null,values1);inserturi= ContentUris.withAppendedId(uri,rowId) ;context.getContentResolver().notifyChange(inserturi,null);return inserturi;}}同時(shí)打開兩個(gè)app,點(diǎn)擊第一個(gè)app的button按鈕,觀察到app2新增加一條datebase記錄
?倉庫地址
liuxinyi-monday/windows program - Gitee.com
總結(jié)
以上是生活随笔為你收集整理的安卓开发之利用contentprovider进行数据获取的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 伯克利的电气工程和计算机科学专业,优弗科
- 下一篇: 快递100接口的简单使用: