0

对我来说,有些事情还不清楚;我必须监控电池电量,我在我的服务中写了 onCreate 这几行:

public void onCreate(){
   super.onCreate();
   mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
   new IntentFilter(Intent.ACTION_BATTERY_CHANGED);    
}

然后在清单中:

<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>

我不明白的是..Intent.ACTION_BATTERY_CHANGED在java和android.intent.action.BATTERY_CHANGEDManifest中写Intent是否正确?还是只需要一个?

4

3 回答 3

3

每当您计划使用意图过滤器时,请务必查看Intent文档。如果广播不能被 manifest Intent Filter 拾取,通常会在文档中描述。例如,BATTERY_CHANGED广播操作提供以下信息:

您不能通过清单中声明的​​组件接收此信息,只能通过使用 Context.registerReceiver() 显式注册它。

于 2013-08-21T15:11:50.167 回答
1

您只需要 1. 将其写入清单中,使其在安装应用程序后立即生效。将其放入 java 代码中将使其仅在其创建的活动/服务正在运行时才处于活动状态。

于 2013-08-21T15:09:27.787 回答
1

两种方式都是正确的。您可以在 Manifest 文件或 java 文件中写入。
某些权限必须写入 Manifest 文件。

于 2013-08-21T15:13:13.723 回答