2013-12-13 52 views
1

我已經在連接變化的清單文件中註冊了一個廣播接收器。它在網絡發生變化時工作正常,調用onReceive()。但是,當我啓動我的應用程序,並有互聯網;因爲網絡沒有變化;接收器不會被調用。我希望這個接收器被稱爲第一次推出的應用程序..android中的廣播接收器的多個動作

我的想法是添加一個更多的行動BroadcastReceievr,這是個好主意嗎?並且每當連接更改操作被調用時,我想取消註冊啓動器動作意圖。

我該怎麼辦?

回答

2

您可以添加多個過濾器是這樣的:

IntentFilter inf = new IntentFilter(); 
    inf.addAction(ConnectivityManager.CONNECTIVITY_ACTION); 
    inf.addAction("app_launch"); 

    registerReceiver(receiver, inf); 

而當你在的onCreate啓動您的應用程序,你可以發送廣播

Intent intent = new Intent(); 
    intent.setAction("app_launch"); 
    sendBroadcast(intent); 
+0

但是,當網絡改變將有兩個接收機聽兩種不同的意圖..一旦網絡更改操作被調用,我想取消註冊app_launch動作..我在這種情況下遇到了問題 – user3035018

+0

不會有一個接收器監聽兩次操作,每當您廣泛投射app_launch時以及網絡更改時 –

+0

我已經從廣播接收器啓動了警報管理器。但是當我在這種情況下銷燬活動時,我將不得不取消註冊接收器。 – user3035018