BroadcastReceiver詳解,broadcastreceiver

來源:互聯網
上載者:User

BroadcastReceiver詳解,broadcastreceiver

 啟動BroadcastReceiver需要兩個步驟:

 

  BroadcastReceiver註冊廣播位址,靜態註冊(intentFilter),動態註冊(registerReceiver

 

靜態註冊:

 

  <receiver android:name=".MyReceiver">  <intent-filter> <action android:name="android.intent.action.MY_BROADCAST"/> <category android:name="android.intent.category.DEFAULT" /></intent-filter></receiver>

 

 

 

動態註冊:

MyReceiver receiver = new MyReceiver();            IntentFilter filter = new IntentFilter();  filter.addAction("android.intent.action.MY_BROADCAST");            registerReceiver(receiver, filter);  

 

還需要解除註冊:unregisterReceiver()

 

普通廣播對於多個接收者來說是完全非同步,通常每個接收者都無需等待即可以接收到廣播,接收者相互之間不會有影響。對於這種廣播,接收者無法終止廣播,即無法阻止其他接收者的接收動作。

 

終止廣播:abortBroadcast()

 

http://blog.csdn.net/liuhe688/article/details/6955668

 

 

sendOrderedBroadcast(intent, string) 發送有序廣播:
 注意,使用sendOrderedBroadcast方法發送有序廣播時,需要一個許可權參數,如果為null則表示不要求接收者聲明指定的許可權,如果不為null,則表示接收者若要接收此廣播,需聲明指定許可權。

 

 

接收系統Broadcaset,比如開機完成“android.intent.action.BOOT_COMPLETED”,“android.permission.ACCESS_NETWORK_STATE”,廣播;然後構建啟動服務Intent, new Intent(context,service.class); context.startService(intent); 啟動Service.

 

 

ContentResolver對指定Uri執行CRUD等資料操作,但Uri並不是真正的資料核心,因此這些CRUD操作會委託給該Uri對應的ContentProvider來實現。

 

在AndroidManifest.xml中配置了provider之後,在Activity裡getContentResolver()擷取到resolver,再通過resolve調用query, insert, update等方法的時候,其實就是調用到了Provider執行資料操作。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.