2013-08-21 44 views
0

有些東西對我來說還不清楚;我要監控電池的水平,我在日的onCreate寫我的服務這裏面線:哪裏有意圖?Java或Manifest?

​​

然後在清單:

<receiver android:name=".ReceversAndServices.BatteryLevelReceiver"> 
    <intent-filter> 
    <action android:name="android.intent.action.BATTERY_CHANGED" /> 
    <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

什麼,我不明白的是..它是正確的在java中寫入Intent Intent.ACTION_BATTERY_CHANGED,在Manifest中寫入android.intent.action.BATTERY_CHANGED?或者只需要一個?

+1

'new IntentFilter(Intent.ACTION_BATTERY_CHANGED);'在你的'onCreate()'方法中沒用。 –

回答

3

無論您打算如何使用意圖過濾器,請始終使用Intent文檔進行檢查。如果廣播不能被清單意圖過濾器拾取,通常將在文檔中對其進行描述。例如,BATTERY_CHANGED廣播行動提供了這樣的信息:

您無法通過艙單申報組件收到此, 只有通過與Context.registerReceiver明確登記爲它()。

+0

所以它只是在java中的編程權利? –

+0

@David_D正好 –

+0

你建議離開Java代碼,因爲我以前寫或有我改變的東西? –

1

您只需要1.在清單中編寫它會在應用程序安裝後立即生效。將它放入java代碼中,只有當它在其中創建的活動/服務正在運行時纔會激活它。

+0

在這種情況下是通知..你認爲最好只寫在Java?通知獲取電池電量,即使應用程序關閉,它仍然保持運行。 –

1

兩種方式都是正確的。你可以在Manifest文件或java文件中寫入。
某些權限必須寫入Manifest文件中。