Re: [問題] Broadcast Receiver
※ 引述《fake01 (假面超人)》之銘言:
: 大家好
: 小弟目前再用BroadcastReceiver,想請問不同的activity都會要使用到
: 廣播來接收訊息,那這個時候就很麻煩,因為要在每個activity都要宣告一次
: public class Receiver extends BroadcastReceiver.....
: 很麻煩,是不是可以直接寫一個class,然後其他activity 就讀取這個class就好
: 重點在class裡面這行
: public void onReceive(Context context, Intent intent)
: 不知道其他activity 如何給參數.. 才可以共用
: 麻煩各位了
: 謝謝大家
想了一下如果要利用一個Brocast收到訊息後對其他Activity 通知的話
1.如果想利用一個BrocastReciver來達成的話...
會建議先寫一個抽象類別 BaseActivity.java
裡面宣告一個變數
public static Handle mHanlder ... ;
在宣告一個static function
public static void sendMessage(Message msg){
// ...對 mHanlder send message
}
2.Receiver.java在接收到廣播後透過
BaseActivity.sendMessage(...);
傳遞要執行的參數
3.接著就是在每個Actitvity要繼承BaseActivity
在onCreate內去產生Handler覆蓋hanldeMessage方法
如果在handleMessage內做的事情會是一樣的就在BaseActivity內寫成共用方法
public void onCreate(...){
...
mHander = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
updateTitle();
break;
}
};
}
}
以上沒實作測試,不過我猜應該可以達到你的目的
另一個方法我覺得比較好
就是在BaseActivity內宣告一個 BrocastReciver mReciver ;
在onCreate跟 onPause自己處理註冊機制
這樣所有的Activity都可以收到通知,做法感覺也比較正統
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.138.251
※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1396275575.A.018.html
推
03/31 22:22, , 1F
03/31 22:22, 1F
推
03/31 22:39, , 2F
03/31 22:39, 2F
推
04/04 12:09, , 3F
04/04 12:09, 3F
→
04/04 12:10, , 4F
04/04 12:10, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):