BroadcastReceiver比较动作名称

时间:2015-01-30 04:54:34

标签: java android

我有一个广播接收器,当电池电量不足时会被触发。注意我的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

为什么名称不同?我该怎样做才能 正确 解决此问题?

1 个答案:

答案 0 :(得分:1)

如你所见:

android.intent.action.ACTION_BATTERY_LOW

  

常数值:" android.intent.action.BATTERY_LOW"

表示BATTERY_OKAY android.intent.action.BATTERY_LOW是Intent类中ACTION_BATTERY_LOW常量的原始值