Background execution not allowed

adb shell am broadcast -a action.xxx.xxx.xxx
/system_process W/BroadcastQueue: Background execution not allowed: receiving Intent { act=action.net.servicestate flg=0x400010 } to xxx/xxx

原因:
if (allowed == ActivityManager.APP_START_MODE_DISABLED) {
    Slog.w(TAG, "Background execution disabled: receiving "
            + r.intent + " to "
            + component.flattenToShortString());
    skip = true;
} else if (((r.intent.getFlags()&Intent.FLAG_RECEIVER_EXCLUDE_BACKGROUND) != 0)
        || (r.intent.getComponent() == null
            && r.intent.getPackage() == null
            && ((r.intent.getFlags()
                    & Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND) == 0)
            && !isSignaturePerm(r.requiredPermissions))) {
    mService.addBackgroundCheckViolationLocked(r.intent.getAction(),
            component.getPackageName());
    Slog.w(TAG, "Background execution not allowed: receiving "
            + r.intent + " to "
            + component.flattenToShortString());
    skip = true;
}


方案1:
public static final int FLAG_RECEIVER_INCLUDE_BACKGROUND = 0x01000000;
adb shell am broadcast -a action.xxx.xxx.xxx -f 16777216
方案2:
adb shell am broadcast -a action.xxx.xxx.xxx -es package "xxxx"

你可能感兴趣的:(Android,安卓)