2011-10-03 37 views
1

我實現了一個示例應用程序,顯示Android應用程序的電話信息,電池信息。我爲兩個活動創建了兩個不同的Class文件。我可以在Android編程中註冊一個以上的BroadcastReceiver嗎?

獲取手機相關信息沒有問題。在手機上獲取電池相關信息時出現問題。以下是我想要註冊的一些預期操作。

Intent.ACTION_BATTERY_CHANGED 
Intent.ACTION_UMS_CONNECTED 
Intent.ACTION_UMS_DISCONNECTED 
Intent.ACTION_POWER_CONNECTED 
Intent.ACTION_POWER_DISCONNECTED 

案例1 - 我爲上述每個操作註冊了多個BroadcastReceivers。 結果 - 只有ACTION_BATTERY_CHANGED操作數據正常。但其他與行動有關的數據並沒有好起來。

案例2 - 我只爲ACTION_BATTERY_CHANGED註冊了一個BroadcastReceiver。在執行onReceive(Context context, Intent intent)方法時,我正在檢查其他操作(ACTION_UMS_CONNECTED, ACTION_UMS_DISCONNECTED, ACTION_POWER_CONNECTED, ACTION_POWER_DISCONNECTED)

結果 - 仍然是同樣的問題,其他操作相關的信息沒有出現。

我使用Android 2.1 update-1版本的Android手機進行測試。

回答

3

我可以在Android編程中爲一個活動註冊多個BroadcastReceiver嗎?

AFAIK,是的。此外,對於您的方案,您不一定需要多個BroadcastReceiver對象 - 您可以創建一個列出您所需的所有操作的單個IntentFilter(請參閱addAction()方法)。

其餘全部都是錯誤的數據

那句話並不英語解析,對不起。

結果 - 仍然是相同的問題其他行動相關的信息是不是很好。

如果您沒有爲給定的廣播操作註冊接收器,您將不會收到該操作的廣播。

+0

感謝它的正常工作。 –

相關問題