亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android編程之監聽器用法實例分析

2020-04-11 11:04:22
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程之監聽器用法。分享給大家供大家參考,具體如下:

這里通過監聽內容提供者數據變化和監聽發送短信進行講解監聽器。如果用戶提供者數據發生了變化,監聽器立刻就能收到對數據庫操作的記錄,而監聽器是采用通知的機制,如果不采用通知的機制也可以做,那就是不斷的查詢數據庫,這樣的話效率就會很低。而采用通知機制的話,當用戶向數據庫發送一條記錄,ContentObserver立刻就能獲取到,我們就可以進行處理數據。

監聽內容提供者數據的變化

1.在內容提供者中可以通知其他程序數據發生變化時進行監聽

通過Context的getContentResolver()方法獲取ContentResolver

調用其notifyChange()方法發送數據修改通知

2.在其他程序中可以通過ContentObserver監聽數據變化

通過Context的getContentResolver()方法獲取ContentResolver

調用其registerContentObserver()方法指定對某個Uri注冊ContentObserver

自定義ContentObserver,重寫onChange()方法獲取數據

比如在用戶插入數據的時候進行監聽通知:

public Uri insert(Uri uri, ContentValues values) {  SQLiteDatabase db = helper.getWritableDatabase();  switch (matcher.match(uri)) {    case PERSON_ALL:      long id = db.insert("person", "id", values);      // 監聽通知      getContext().getContentResolver().notifyChange(uri, null);      return ContentUris.withAppendedId(uri, id);    default:      throw new IllegalArgumentException("Unmatch Uri: " + uri);  }}

在另外一個工程中進行監聽,一旦用戶進行插入操作,我立刻就可以自動獲取到用戶插入的記錄:

public class MainActivity extends Activity {  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    getContentResolver().registerContentObserver(Uri.parse("content://cn.itcast.provider.itcast/person"), true, new MyObserver(new Handler()));  }  class MyObserver extends ContentObserver {    public MyObserver(Handler handler) {      super(handler);    }    //當監聽到數據發生了變化就調用這個方法,并將新添加的數據查詢出來    public void onChange(boolean selfChange) {      ContentResolver resolver = getContentResolver();      Uri uri = Uri.parse("content://cn.itcast.provider.itcast/person");      Cursor cursor = resolver.query(uri, new String[] { "id", "name", "phone", "balance" }, null, null, "id DESC LIMIT 1");      while (cursor.moveToNext()) {        System.out.print(cursor.getString(0) + " ");        System.out.print(cursor.getString(1) + " ");        System.out.print(cursor.getString(2) + " ");        System.out.println(cursor.getString(3));      }    }  }}

監聽發送短信

1.Android系統提供了Provider對短信進行查詢,當發出短信時也會發送更改通知

2.定義一個Observer監聽"content://sms"

3.在onChange()方法中查詢用戶發送的短信"content://sms/outbox"

4.短信發送信息存放在數據庫 date/date/com.android.providers.telephony

5.需要權限<uses-permission android:name="android.permission.READ_SMS" />

示例:

public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  getContentResolver().registerContentObserver(Uri.parse("content://sms"), true, new SmsObserver(new Handler()));}//監聽發送的短信private final class SmsObserver extends ContentObserver {  public SmsObserver(Handler handler) {    super(handler);  }  public void onChange(boolean selfChange) {    ContentResolver resolver = getContentResolver();    //查到發出的短信    Uri uri = Uri.parse("content://sms/outbox");    Cursor cursor = resolver.query(uri, new String[] { "date", "address", "body" }, null, null, "_id desc limit 1");    if (cursor.moveToNext()) {      long ms = cursor.getLong(0);      String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(ms));      String address = cursor.getString(1);      String body = cursor.getString(2);      System.out.println(date + " " + address + " " + body);    }  }}

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一级黄色av| 综合欧美国产视频二区| 亚洲欧美在线播放| 精品国偷自产在线| 日韩av黄色在线观看| 欧美视频在线看| 国产精品美女久久久久av超清| 亚洲高清久久网| 9.1国产丝袜在线观看| 欧美激情中文字幕乱码免费| 日韩在线免费av| 亚洲国产一区自拍| 国产在线观看精品| 深夜成人在线观看| 亚洲成人av片在线观看| 91丝袜美腿美女视频网站| 日韩精品视频三区| 色妞欧美日韩在线| 国产精品人成电影| 日韩亚洲第一页| 亚洲国产精品va在线看黑人动漫| 欧美人成在线视频| 国产亚洲人成网站在线观看| 国产日韩在线一区| 久久精品中文字幕免费mv| 国产亚洲视频在线观看| 1769国内精品视频在线播放| 久久成人精品电影| 色青青草原桃花久久综合| 国产精品激情av电影在线观看| 亚洲人成亚洲人成在线观看| 伊人男人综合视频网| 亚洲美女黄色片| 69av成年福利视频| 欧美日韩成人网| 国产精品69久久| 91亚洲精品在线观看| 国产精品xxxxx| 国产精品激情av在线播放| 久久精品视频导航| 色哟哟网站入口亚洲精品| 国产在线999| 中文在线不卡视频| 国内精品模特av私拍在线观看| 亚洲视频国产视频| 91久久综合亚洲鲁鲁五月天| 欧美电影院免费观看| 黄色一区二区三区| 国产美女高潮久久白浆| 久久亚洲国产精品成人av秋霞| 日韩av电影手机在线| 91亚洲精品一区二区| 久久91亚洲人成电影网站| 欧美怡春院一区二区三区| 亚洲成人精品久久| 欧美色xxxx| 久久久这里只有精品视频| 日本精品一区二区三区在线| 欧美成人激情图片网| 亚洲国产高潮在线观看| 伊人久久大香线蕉av一区二区| 精品久久久久久国产| 欧美激情在线观看| 日韩精品极品视频| 欧美一区二粉嫩精品国产一线天| 久久青草福利网站| 欧美在线一区二区三区四| 国产最新精品视频| 国产精品久久久av久久久| 在线播放精品一区二区三区| 欧美孕妇性xx| 成人精品网站在线观看| 国产精品视频免费观看www| 亚洲免费中文字幕| 日韩av黄色在线观看| 亚洲二区中文字幕| 91免费视频网站| 欧美日韩在线视频一区| 大桥未久av一区二区三区| 午夜精品蜜臀一区二区三区免费| 亚洲一区二区少妇| 欧美性xxxx在线播放| 精品国产一区二区在线| 国产视频在线一区二区| 日韩av一区二区在线| 51精品国产黑色丝袜高跟鞋| 午夜精品久久久久久久久久久久久| 国产精品高潮呻吟久久av野狼| 麻豆国产va免费精品高清在线| 欧美午夜精品久久久久久浪潮| 欧美日韩999| 日韩精品免费电影| 国产精品久久久久久久久免费| 亚洲小视频在线| 亚洲自拍偷拍色图| 精品伊人久久97| 国产精品自产拍在线观看中文| 亚洲欧美日韩国产中文| 超碰日本道色综合久久综合| 最新国产精品拍自在线播放| 欧美高清videos高潮hd| 成人黄色网免费| 色婷婷综合久久久久| 亚洲丁香婷深爱综合| 国产精品老女人精品视频| 久久久久女教师免费一区| 亚洲一区二区中文字幕| 亚洲日韩欧美视频一区| 国产成人久久久精品一区| 国产日韩专区在线| 国产精品免费一区| 欧美成人精品h版在线观看| 亚洲精品国产免费| 欧美人与性动交| 色无极亚洲影院| 人人爽久久涩噜噜噜网站| 亚洲精品久久久一区二区三区| 亚洲电影中文字幕| 欧美老女人性生活| 久久视频免费在线播放| 狠狠躁夜夜躁人人爽超碰91| 国产福利精品视频| 亚洲丁香久久久| 亚洲国语精品自产拍在线观看| 欧美日韩国产在线播放| 亚洲精品国产福利| 69久久夜色精品国产7777| 亚洲美女免费精品视频在线观看| 欧美疯狂性受xxxxx另类| 国产成人精品在线播放| 亚洲第一天堂无码专区| 国产成人精彩在线视频九色| 亚洲第一偷拍网| 亚洲一级片在线看| 亚洲性av网站| 亚洲成人久久一区| 欧美在线视频网| 国产日韩在线亚洲字幕中文| 欧美俄罗斯乱妇| 成人黄色影片在线| 精品国模在线视频| 日韩高清免费观看| 国产精品一区二区久久久| 欧美日韩另类字幕中文| yw.139尤物在线精品视频| 精品国产一区二区三区久久狼5月| 91av视频在线免费观看| 亚洲精品一区二区在线| 亚洲女人天堂色在线7777| 国产精品无码专区在线观看| 国产精品久久久久久久久久99| 欧美在线视频导航| 久久久久久久久久国产精品| 亚洲成**性毛茸茸| 青草青草久热精品视频在线观看| 久久国产精品亚洲| 久久精品精品电影网| 亚洲韩国青草视频| 国产97在线亚洲| 久久久精品视频在线观看| 亚洲伊人一本大道中文字幕| 91av在线视频观看| 亚洲国产精品女人久久久| 久久视频中文字幕|