真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ContentObserver-創(chuàng)新互聯(lián)

1. ContentObserver——內(nèi)容觀察者,目的是觀察(捕捉)特定Uri引起的數(shù)據(jù)庫(kù)的變化,繼而做一些相應(yīng)的處理.ContentObserver

1)注冊(cè)ContentObserver方法

創(chuàng)新互聯(lián)建站專業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專業(yè)提供成都服務(wù)器托管,服務(wù)器租用,成都移動(dòng)機(jī)房,成都移動(dòng)機(jī)房,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。
public final void registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer)

功能:為指定的Uri注冊(cè)一個(gè)ContentObserver派生類實(shí)例,當(dāng)給定的Uri發(fā)生改變時(shí),回調(diào)該實(shí)例對(duì)象去處理。

uri表示需要觀察的Uri

notifyForDescendents 為false 表示精確匹配,即只匹配該Uri。 為true 表示可以同時(shí)匹配其派生的Uri。

2)取消注冊(cè)ContentObserver方法

public final void unregisterContentObserver(ContentObserver observer)

功能:取消對(duì)給定Uri的觀察

參數(shù): observer ContentObserver的派生類實(shí)例

2.ContentObserver類介紹

構(gòu)造方法 ContentObserver(Handler h)

void onChange(boolean selfChange) 功能:當(dāng)觀察到的Uri發(fā)生變化時(shí),回調(diào)該方法去處理。所有ContentObserver的派生類都需要重載該方法去處理邏輯。

3.觀察特定Uri的步驟如下:

1、創(chuàng)建我們特定的ContentObserver派生類,必須重載父類構(gòu)造方法,必須重載onChange()方法去處理回調(diào)后的功能實(shí)現(xiàn)

2、利用context.getContentResolover()獲ContentResolover對(duì)象,接著調(diào)用registerContentObserver()方法去注冊(cè)內(nèi)容觀察者

3、在不需要時(shí),需要手動(dòng)的調(diào)用 unregisterContentObserver()去取消注冊(cè)。

例子:監(jiān)聽(tīng)短信內(nèi)容變化

在Activity中:

public class Day0108_contentobserverActivity extends Activity {

private Handler handler = new Handler(){

public void handleMessage(android.os.Message msg) {

switch (msg.what) {

case 100:

                String body= (String) msg.obj;

                TextView tv= (TextView) findViewById(R.id.tv);

                tv.setText(body);

break;

            }

        }

    };

    @Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        ContentResolver cr= getContentResolver();

        ContentObserver smsObserver= new SmsContentObserver(this,handler);

//第二個(gè)參數(shù),true表示觀察所有有關(guān)短信的
        cr.registerContentObserver(Uri.parse("content://sms"), true, smsObserver);

//content://sms/inbox//收件箱

//content://sms/sent//已發(fā)送

//content://sms/draft//草稿箱

//content://sms/outbox//發(fā)件箱

//content://sms/failed//失敗短信

//content://sms/queued//代發(fā)隊(duì)列
    }

}


//SmsContentObserver代碼如下:public class SmsContentObserver extends ContentObserver {

private Handler handler;

private Context context;

public SmsContentObserver(Context context,Handler handler) {

super(handler);

this.handler = handler;

this.context = context;

    }

    @Override

public void onChange(boolean selfChange) {

        ContentResolver cr= context.getContentResolver();

        Cursor c= cr.query(Uri.parse("content://sms/inbox"), null, "0", null, "date desc");

        StringBuilder sb= new StringBuilder();

while(c.moveToNext()){

//發(fā)件人手機(jī)號(hào)碼
            String sendNumber= c.getString(

                    c.getColumnIndex("address"));

//信息內(nèi)容
            String body= c.getString(c.getColumnIndex("body"));

//readType 表示是否已經(jīng)讀 int hasRead = c.getInt(c.getColumnIndex("read"));

if(hasRead == 0){//表示短信未讀
                System.out.println("短信未讀"+sendNumber);

            }

            sb.append(sendNumber+":"+body+"
");

        }

        handler.obtainMessage(100,sb.toString()).sendToTarget();

    }

}

分享標(biāo)題:ContentObserver-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)源:http://weahome.cn/article/gegod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部