2011-02-24 43 views
6

我被困在開發一個應用程序,因爲我需要在觸發BroadcastReceiver時調用我的活動方法。我希望BroadcastReceiver能夠檢測網絡連接何時關閉,並調用我已經寫好的活動方法。從BroadcastReceiver調用活動方法。可能嗎?

我一直在尋找,我發現更多的人之前曾問過這個問題,但沒有人得到關於如何去做的答案。

我想也許android的API不允許它。如果無法從BroadcastReceiver調用我的活動方法,還有其他方法可以做到這一點嗎?

謝謝。

+0

「Activity」上的方法有什麼作用? – 2011-02-24 12:04:04

+0

它檢查Process變量(屬於Activity)是否未設置爲null(進程已啓動),並且它在殺死該進程的root shell中執行命令。 – Jimix 2011-02-24 12:08:54

回答

9

嘗試是這樣的..

在你的活動代碼寫

BroadcastReceiver connectionReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      myActivityMethod();// Here you call method 
     } 
    }; 

    registerReceiver(connectionReceiver, new IntentFilter("com.test.NET_CONNECTION")); 

而且在服務寫入

Intent intent = new Intent("com.test.NET_CONNECTION"); 
     sendBroadcast(intent); 

如果有任何困惑讓我知道我會盡力解決..

+0

儘管我沒有使用服務(只有一項活動),但我使用了活動中的代碼並忽略了服務的代碼。它很好地工作。非常感謝您的幫助!這個問題一直讓我瘋狂幾天。 – Jimix 2011-02-24 12:37:24