101、使用ContentProvider在应用间传递数据
【ContentWriter】
package com.jikexueyuan.contentwriter; import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri; public class Myprovider extends ContentProvider {
public static final Uri URI = Uri.parse("content://com.jikexueyuan.cp");
SQLiteDatabase database; @Override
public int delete(Uri arg0, String arg1, String[] arg2) {
return 0;
} @Override
public String getType(Uri arg0) {
return null;
} @Override
public Uri insert(Uri arg0, ContentValues arg1) {
database.insert("tab", "_id", arg1);
// database.close();
return null;
} @Override
public boolean onCreate() {
database = getContext().openOrCreateDatabase("mycp.db3", Context.MODE_PRIVATE, null);
database.execSQL("create table tab(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL)"); return true;
} @Override
public Cursor query(Uri arg0, String[] arg1, String arg2, String[] arg3,
String arg4) {
Cursor cursor = database.query("tab", null, null, null, null, null, null);
return cursor;
} @Override
public int update(Uri arg0, ContentValues arg1, String arg2, String[] arg3) {
return 0;
} }
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
write();
}
});
}
public void write() {
ContentValues values;
values = new ContentValues();
values.put("name", "Java");
getContentResolver().insert(Myprovider.URI, values);
values = new ContentValues();
values.put("name", "Swift");
getContentResolver().insert(Myprovider.URI, values);
values = new ContentValues();
values.put("name", "Python");
getContentResolver().insert(Myprovider.URI, values);
values = new ContentValues();
values.put("name", "C#");
getContentResolver().insert(Myprovider.URI, values);
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jikexueyuan.contentwriter"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.jikexueyuan.contentwriter.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<provider android:name="Myprovider" android:exported="true"
android:authorities="com.jikexueyuan.cp" />
</application> </manifest>
【ContentReader】
public class MainActivity extends Activity {
Uri URI = Uri.parse("content://com.jikexueyuan.cp");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Cursor cursor = getContentResolver().query(URI, null, null, null, null);
cursor.moveToFirst();
for (int i = 0; i < cursor.getCount(); i++) {
String value = cursor.getString(cursor.getColumnIndex("name"));
Toast.makeText(getApplicationContext(), value, Toast.LENGTH_SHORT).show();
cursor.moveToNext();
}
}
}
101、使用ContentProvider在应用间传递数据的更多相关文章
- 小菜学习Winform(五)窗体间传递数据
前言 做项目的时候,winfrom因为没有B/S的缓存机制,窗体间传递数据没有B/S页面传递数据那么方便,今天我们就说下winfrom中窗体传值的几种方式. 共有字段传递 共有字段传递实现起来很方便, ...
- contentprovider提供程序间共享数据的统一接口
contentprovider提供程序间共享数据的统一接口
- C#中使用SendMessage在进程间传递数据的实例
原文:C#中使用SendMessage在进程间传递数据的实例 1 新建解决方案SendMessageExample 在解决方案下面新建三个项目:CopyDataStruct,Receiver和Send ...
- StoryBoard学习(5):使用segue页面间传递数据
StoryBoard学习(5):使用segue页面间传递数据 函数: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sen ...
- 使用Bundle在Activity间传递数据
使用Bundle在Activity间传递数据 源Activity public class SourceActivty extends Activity { private Intent intent ...
- WinForm 窗体间传递数据
前言 做项目的时候,winfrom因为没有B/S的缓存机制,窗体间传递数据没有B/S页面传递数据那么方便,今天我们就说下winfrom中窗体传值的几种方式. 共有字段传递 共有字段传递实现起来很方便, ...
- 在微信小程序页面间传递数据总结
在微信小程序页面间传递数据 原文链接:https://www.jianshu.com/p/dae1bac5fc75 在开发微信小程序过程之中,遇到这么一些需要在微信小程序页面之间进行数据的传递的情况, ...
- iPhone应用程序间传递数据
前一篇简单的介绍了iPhone应用程序间通信,主要是通过在被调用应用的Info.plist中加入URL方案,在应用中通过openUrl来实现程序的调用.而应用程序间的数据传递则可以更具url来实现,例 ...
- Android程序中Acticity间传递数据
在Android开发过程中,在不同的Acitivity之间传递数据的情况是非常常见的.我花费了一点时间来总结Acitivity之间的数据传递,记录下来. 1.简单传递键值对 这种传递方式非常简单,只需 ...
随机推荐
- nedb nodejs 数据库学习
// Type 1: In-memory only datastore (no need to load the database) var Datastore = require('nedb') ...
- Linux How to add a new disk to LVM
转自:http://blog.itpub.net/7191998/viewspace-772060/ 1.check old diskspace and device listdf -halfree ...
- struts2.0的工作原理
struts2并不是一个陌生的web框架,它是以Webwork的设计思想为核心,吸收struts1的优点,可以说 struts2是struts1和Webwork结合的产物. struts2 的工作原理 ...
- hibernate的工作原理
hibernate的工作原理1.Hibernate 的初始化.读取Hibernate 的配置信息-〉创建Session Factory1)创建Configeration类的实例.它的构造方法:将配置信 ...
- 转载: scikit-learn学习之K最近邻算法(KNN)
版权声明:<—— 本文为作者呕心沥血打造,若要转载,请注明出处@http://blog.csdn.net/gamer_gyt <—— 目录(?)[+] ================== ...
- asp.net中virtual和abstract的区别
这篇文章主要介绍了asp.net中virtual和abstract的区别,较为详细的分析了virtual与abstract的概念与具体用法,并以实例的形式予以总结归纳,需要的朋友可以参考下 本文实例分 ...
- Jfinal连接自助数据库的数据源
# 开发数据库地址 #jdbcUrl = jdbc:oracle:thin:@localhost:1521:testsa jdbcUrl = jdbc:srdbsql://127.0.0.1:1975 ...
- WCF学习心得------(二)设计和实现服务协定
设计和实现服务协定 创建服务协定—WCF术语 消息 消息是一个独立的数据单元,它可能由几个部分组成,包括消息正文和消息头. 服务 服务是一个构造,它公开一个或多个终结点,其中每个终结点都公开一个或多个 ...
- 【并发编程】AQS学习
一个简单的示例: package net.jcip.examples; import java.util.concurrent.locks.*; import net.jcip.annotations ...
- WINDOWS黑客基础(3):注入代码
有使用过外挂的朋友应该知道,我们在玩游戏的时候,有很多辅助功能给你使用,比如吃药,使用物品等功能,这个时候我们就是使用注入代码的技术,简单的来将就是我们让另外一个进程去执行我们想让它执行的代码,这中间 ...