亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

使用contentProvider在不同進程間傳輸數據

標簽:
Android

contentProvider作为不同软件之间的数据共享,提供统一的接口,

contentProvider 主要功能是封装对数据库的增删改查,并可以对外提供结果,供其它应用程序访问本应用数据库里面的数据,首先我们要创建一个类继承ContentProvider,并且需要实现query,getType,insert,delste,update几个函数,在注册contentProvider指定一个authorities这个是唯一的,我们写contentProvider的时候需要一个操作数据库的类,

2.创建UriMatcher对象以及数据库操作对象,在增删改查的时候回从调用端传递Uri对象过来,在ContentProvider的增删改查的函数里,我们需要根据该uri来判断,是要操作一条数据,还是操作所有符合条件的数据

我们可以用个contentProvider知道数据的变化,使用registerContentObserver来注册一个观察者实例,当指定的uri发生改变时候,该实例会回调实例对象进行相应处理,这个特性尤其是不同进程之间的数据传输特别管用,因为sharepreference对于不同进程之前的数据的支持是非常糟糕的

class NotificationObserver extends ContentObserver {


    public NotificationObserver(Handler handler) {
        super(handler);
    }

    @Override
    public void onChange(boolean selfChange, Uri uri) {

        super.onChange(selfChange, uri);
        LogUtil.d("TAG", ">>>onchange uri=" + uri);
        String id = uri.getLastPathSegment();
        String queryValue = uri.getQueryParameter(PemometerConstant.CONTPROVIDER_URI_QUERY);
    }
}

注册的时候使用:

Uri notificationEnabledUri = Uri.parse("content://" + PedometerProvider.authory + "/notification/");
mNotificationObserver = new NotificationObserver(new Handler());
getContentResolver().registerContentObserver(notificationEnabledUri, true, mNotificationObserver);

发送通知的时候采用下面代码:

public static void notifyStepTargetChanged(Context context,int target) {
    LogUtil.d(TAG,"notifyStepTargetChanged target="+target);
    Uri uri = Uri.parse("content://com.babytree.apps.pregnancy.PedometerProvider/notification");
    Uri resultUri = ContentUris.withAppendedId(uri, target);
    ContentResolver resolver = context.getContentResolver();
    resolver.notifyChange(resultUri, null);
}

当调用resolver.notifyChange的时候,另一个线程中注册了这个uri的类就能接受到发送的uri了

點擊查看更多內容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
全棧工程師
手記
粉絲
6509
獲贊與收藏
303

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消