ContentObserver——內容觀察者,可以觀察特定uri的數據庫的變化,已達到監聽的目的,進而對數據庫的變化作出相應的反應。下面是一個監聽短信變化的應用。
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Uri uri = Uri.parse("content://sms/"); getContentResolver().registerContentObserver(uri, true, new SmsObserver(new Handler())); } public class SmsObserver extends ContentObserver{ public SmsObserver(Handler handler) { super(handler); } //當短信數據庫發生改變時,觸發此方法 @Override public void onChange(boolean selfChange) { System.out.println("您有新短信產生!"); //獲取游標,對數據庫進行操作 Cursor cursor = getContentResolver().query(Uri.parse("content://sms/outbox"), null, null, null, null); while(cursor.moveToNext()){ StringBuilder sBuilder = new StringBuilder(); sBuilder.append("id=").append(cursor.getInt(cursor.getColumnIndex("_id"))); sBuilder.append(";address=").append(cursor.getString(cursor.getColumnIndex("address"))); sBuilder.append(";body=").append(cursor.getString(cursor.getColumnIndex("body"))); sBuilder.append(";time=").append(cursor.getString(cursor.getColumnIndex("date"))); //Toast.makeText(MainActivity.this, sBuilder.toString(), Toast.LENGTH_LONG).show(); String message = sBuilder.toString(); System.out.println(message); TextView textView = (TextView) MainActivity.this.findViewById(R.id.tv_message); textView.setText("你有短信了\n"+message); } super.onChange(selfChange); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享名稱:android開發——內容觀察者-創新互聯
網址分享:http://m.kartarina.com/article44/dcpphe.html
成都網站建設公司_創新互聯,為您提供網站制作、定制網站、域名注冊、網頁設計公司、網站維護、網站導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯