【學習筆記】BroadcastReceiver的運用

來源:互聯網
上載者:User

標籤:broadcastreceive

一、Activity與BroadcastReceiver通訊

1)建立一個BroadcastReceiver,在MainActivity裡通過sendBroadcast方法發送資料

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/89/5A/wKiom1gQVq_An8z3AAAUzJCb3Zw209.png" title="QQ20161026150924.png" alt="wKiom1gQVq_An8z3AAAUzJCb3Zw209.png" />

2)在MyReceiver類中重寫onReceive方法,用參數intent接收資料

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/89/57/wKioL1gQVvOjv1zLAAAR6PzzKQE783.png" title="QQ20161026151034.png" alt="wKioL1gQVvOjv1zLAAAR6PzzKQE783.png" />

二、BroadcastReceiver註冊和登出

1)先在MyReceiver類中定義一個ACTION常量

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/58/wKioL1gQWrOyE7q2AAANaAo-_L8021.png" title="QQ20161026152634.png" alt="wKioL1gQWrOyE7q2AAANaAo-_L8021.png" />

2)在MainActivity中建立Intent執行個體,此時就不能用顯示的方法建立了,要用隱示的方法通過ACTION的值來執行個體化

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/5A/wKiom1gQXEiD2l3eAAAG_xODWk4001.png" title="QQ20161026153254.png" alt="wKiom1gQXEiD2l3eAAAG_xODWk4001.png" />

3)在MainActivity中定義一個MyReceiver的對象,初始化為null。在用registerReceiver方法時要確保MyReceiver的對象為空白,在用unregisterReceiver方法時確保MyReceiver對象不為空白

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/89/5A/wKiom1gQW8GztY1dAABixTxlcZk394.png" title="QQ20161026153023.png" alt="wKiom1gQW8GztY1dAABixTxlcZk394.png" />


三、BroadcastReceiver優先順序

當有多個廣播接收器的時候,他們的ACTION一致,想設定誰先收到就可以在AndroidManifest.xml檔案中的intent-filter中添加priority,數字高的先接收

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/89/5A/wKiom1gQYE-yrMVJAABYDbc9tVo040.png" title="QQ20161026154931.png" alt="wKiom1gQYE-yrMVJAABYDbc9tVo040.png" />

當優先順序高的接收到了想阻止後面的廣播接收器接收的話,就需要在相應的接收器裡用abortBroadcast方法停止廣播,但阻止的話在MainActivity裡發送廣播的方法就不能用sendBroadcast了,不然會出現異常,要用sendOrderedBroadcast方法

sendOrderedBroadcast(i,null);

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/89/5A/wKiom1gQYRGjlD7cAAATuSaEVXM682.png" title="QQ20161026155345.png" alt="wKiom1gQYRGjlD7cAAATuSaEVXM682.png" />



【學習筆記】BroadcastReceiver的運用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.