我有一个广播接收器,当电池电量不足时会被触发。注意我的if语句。它永远不会进入。
public class ActionReceiverHandler extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.e("onreceive","in: " + intent.getAction() + " " + Intent.ACTION_BATTERY_LOW);
String actionName = intent.getAction();
if(actionName.equalsIgnoreCase(Intent.ACTION_BATTERY_LOW)){
Log.e("detected", "low battery");
}
}
}
然后我决定快速添加该日志以查看返回的字符串:
我的intent.getAction()
返回android.intent.action.ACTION_BATTERY_LOW
,我的Intent.ACTION_BATTERY_LOW
返回android.intent.action.BATTERY_LOW
为什么名称不同?我该怎样做才能 正确 解决此问题?
答案 0 :(得分:1)
如你所见:
android.intent.action.ACTION_BATTERY_LOW
常数值:" android.intent.action.BATTERY_LOW"
表示BATTERY_OKAY
android.intent.action.BATTERY_LOW
是Intent类中ACTION_BATTERY_LOW
常量的原始值