Android ContentProvider
来源:互联网 发布:淘宝怎么增加颜色分类 编辑:程序博客网 时间:2024/05/18 03:42
话说 在实际工作中从来没有用过cp 现在有个项目需要用到 现在实现了 把大体的内容贴出来 供参考
package com.su.appguardservice.db;import com.su.appguardservice.util.MLog;import android.app.DownloadManager.Query;import android.content.ContentProvider;import android.content.ContentValues;import android.content.UriMatcher;import android.database.Cursor;import android.net.Uri;public class GuardDaoProvider extends ContentProvider {private static final int INSERT = 10;private static final int QUERY = 11;private static UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);private static Uri changeuri = Uri.parse("content://com.su.aguardprovider");private GuardDao dao;/** * 如果是content://com.su.aguardprovider/insert则matcher.match(uri) = 10; */static {matcher.addURI("com.su.aguardprovider", "insert", INSERT);matcher.addURI("com.su.aguardprovider", "query", QUERY);}@Overridepublic boolean onCreate() {dao = new GuardDao(getContext());return false;}/** * 只做测试用,真正需要操作的时候需要吧从数据库的cursor返回 */@Overridepublic Cursor query(Uri uri, String[] projection, String selection,String[] selectionArgs, String sortOrder) {int result = matcher.match(uri);MLog.e(result + "");if (result == QUERY) {MLog.e(dao.find());}return null;}@Overridepublic String getType(Uri uri) {// TODO Auto-generated method stubreturn null;}@Overridepublic Uri insert(Uri uri, ContentValues values) {int result = matcher.match(uri);if (result == INSERT) {MLog.e(result + "");String keycode = (String) values.get("keycode");dao.add(keycode);getContext().getContentResolver().notifyChange(changeuri, null);} else {throw new IllegalArgumentException("插入失败");}return null;}@Overridepublic int delete(Uri arg0, String arg1, String[] arg2) {// TODO Auto-generated method stubreturn 0;}@Overridepublic int update(Uri uri, ContentValues values, String selection,String[] selectionArgs) {// TODO Auto-generated method stubreturn 0;}}
访问比较简单了 在另一个程序中:
/** * 写入授权密码 * * @param keycode */private void insert(String keycode) {ContentResolver contentResolver = this.getContentResolver();Uri insertUri = Uri.parse("content://com.su.aguardprovider/insert");ContentValues values = new ContentValues();values.put("keycode", keycode);contentResolver.insert(insertUri, values);}
cp肯定少不了dao和dbhelper
package com.su.appguardservice.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class GuardDBHelper extends SQLiteOpenHelper {public GuardDBHelper(Context context) {super(context, "guarddbhelper.db", null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("CREATE TABLE user (_id integer primary key autoincrement,key varchar(10), keyword varchar(30))");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}}
package com.su.appguardservice.db;import com.su.appguardservice.util.MLog;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;public class GuardDao {private GuardDBHelper dbHelper;public GuardDao(Context context) {dbHelper = new GuardDBHelper(context);}public String find() {String result = null;SQLiteDatabase db = dbHelper.getReadableDatabase();if (db.isOpen()) {Cursor cursor = db.rawQuery("select keyword from user where key='key'", null);if (cursor.moveToNext()) {result = cursor.getString(0);}cursor.close();db.close();}return result;}public void add(String packname) {SQLiteDatabase db = dbHelper.getWritableDatabase();if (db.isOpen()) {db.execSQL("delete from user where key='key'");db.execSQL("insert into user (key,keyword) values (?,?)",new Object[] { "key", packname });db.close();}}}
- android contentprovider
- android contentprovider
- Android ContentProvider
- android ContentProvider
- Android ContentProvider
- android ContentProvider
- android ContentProvider
- Android ContentProvider
- Android ContentProvider
- android ContentProvider
- Android ContentProvider
- android contentprovider
- android contentProvider
- Android ContentProvider
- Android ContentProvider
- Android ContentProvider
- Android ContentProvider
- android contentprovider
- Android 开发源码分享
- IP地址正则表达式
- ubuntu apt-get 参数 -purge
- 用Win7自带的diskpart命令给U盘做启动安装盘
- ORA-01536的分析和解决
- Android ContentProvider
- 如何判断自己是否到了该辞职的时候
- 字符编码
- Libsvm使用总结
- orange's 读书笔记一之环境搭建
- android手机和电脑通过wifit通信
- Visual studio 2012 ultimate 安装遇到 Prerequisites , 错误的函数 incorrect function
- LFS 7.2手记(一)
- Ubuntu 12.04 root默认密码? 如何使用root登录?