Java GCM不是';当按下电源按钮(睡眠)几秒钟后,t接收到信息

Java GCM不是';当按下电源按钮(睡眠)几秒钟后,t接收到信息,java,android,android-broadcastreceiver,Java,Android,Android Broadcastreceiver,请帮我解决这个问题伙计们。。 手机仅在设备开机时接收信息。 当按下电源按钮关闭一秒钟左右(20-30)时,它停止接收,并在打开时继续接收。 这是我的听筒 public class GcmBroadcastReceiver extends WakefulBroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i("GCM ", "GCM CO

请帮我解决这个问题伙计们。。 手机仅在设备开机时接收信息。 当按下电源按钮关闭一秒钟左右(20-30)时,它停止接收,并在打开时继续接收。 这是我的听筒

public class GcmBroadcastReceiver extends WakefulBroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i("GCM ", "GCM COME");
        ComponentName comp = new ComponentName(context.getPackageName(),
                MainService.class.getName());
        startWakefulService(context, (intent.setComponent(comp)));
        setResultCode(Activity.RESULT_OK);
    }
}

为Wakelock创建一个如下所示的类

@SuppressLint("Wakelock")
public class WakeLocker {
private static PowerManager.WakeLock wakeLock;

@SuppressWarnings("deprecation")
public static void acquire(Context context) {
    if (wakeLock != null)
        wakeLock.release();

    PowerManager pm = (PowerManager) context
            .getSystemService(Context.POWER_SERVICE);
    wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
            | PowerManager.ACQUIRE_CAUSES_WAKEUP
            | PowerManager.ON_AFTER_RELEASE, "WakeLock");
    wakeLock.acquire();
}

public static void release() {
    if (wakeLock != null)
        wakeLock.release();
    wakeLock = null;
}
}
并在BroadcastReceiver的onReceive方法中写入这行

// Waking up mobile if it is sleeping
WakeLocker.acquire(getApplicationContext());
// Releasing wake lock
WakeLocker.release();

电话铃响了。但当我按下电源按钮时,它仍然没有收到任何信息。我甚至把它放在带有循环语句的服务上,使它始终处于唤醒状态,但仍然没有收到消息,但当我解锁手机时,消息会直接出现。实际上,我想要的是,即使我的手机处于锁定模式、睡眠等状态,GCM也能工作或仍然能够收到消息,除非关机,如BBM,wassap line应用程序,即使手机处于关闭模式(关机除外),仍能接收信息。提前谢谢各位。