欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

android深度睡眠对广播有什么影响吗,为什么WakefulBroadcastReceiver不能将我的设备从深度睡眠中唤醒?...

发布时间:2023/12/15 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 android深度睡眠对广播有什么影响吗,为什么WakefulBroadcastReceiver不能将我的设备从深度睡眠中唤醒?... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我正在使用唤醒服务的WakefulBroadcastReceiver唤醒我的设备。该服务启动一个活动,并在最后通知WakefulBroadcastReceiver结束作业。我做了一个日志文件,我什么都看不到。当我解锁设备时,几秒钟后,活动即开始。当我设置闹钟时,为什么不做?为什么WakefulBroadcastReceiver不能将我的设备从深度睡眠中唤醒?

Manifest包含BroadcastReceiver和Service声明和WAKE_LOCK权限。

这里是WakefulBroadcastReceiver:

public class AlarmBroadcastReceiver extends WakefulBroadcastReceiver {

public AlarmBroadcastReceiver() {

Logging.logToFile("Construct broadcast receiver");

}

@Override

public void onReceive(Context context, Intent intent) {

Intent service = new Intent(context, AlarmService.class);

startWakefulService(context, service);

Logging.logToFile("Started wakeful broadcast receiver");

}

}

这里是服务类:

public class AlarmService extends IntentService {

public AlarmService() {

super("AlarmService");

Logging.logToFile("Started intent service");

}

@Override

protected void onHandleIntent(Intent intent) {

Logging.logToFile("Handle intent service");

Intent service = new Intent(this, WakeUpActivity.class);

service.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

startActivity(service);

AlarmBroadcastReceiver.completeWakefulIntent(intent);

}

@Override

public void onDestroy() {

super.onDestroy();

Logging.logToFile("Destroy intent service");

}

}

这里是我的日志:

At 2016-04-01 23:14: Alarm set at 23:20

At 2016-04-01 23:23: Construct broadcast receiver

At 2016-04-01 23:23: Started wakeful broadcast receiver

At 2016-04-01 23:23: Started intent service

At 2016-04-01 23:23: Handle intent service

At 2016-04-01 23:23: Started WakeActivity

At 2016-04-01 23:23: Destroy intent service

At 2016-04-01 23:25: Alarm set at 23:30

At 2016-04-01 23:33: Construct broadcast receiver

At 2016-04-01 23:33: Started wakeful broadcast receiver

At 2016-04-01 23:33: Started intent service

At 2016-04-01 23:33: Handle intent service

At 2016-04-01 23:33: Destroy intent service

At 2016-04-01 23:33: Started WakeActivity

At 2016-04-01 23:34: Alarm set at 23:40

At 2016-04-01 23:42: Construct broadcast receiver

At 2016-04-01 23:42: Started wakeful broadcast receiver

At 2016-04-01 23:42: Started intent service

At 2016-04-01 23:42: Handle intent service

At 2016-04-01 23:42: Destroy intent service

At 2016-04-01 23:42: Started WakeActivity

At 2016-04-01 23:43: Started WakeActivity

At 2016-04-01 23:44: Alarm set at 23:49

At 2016-04-02 00:02: Construct broadcast receiver

At 2016-04-02 00:02: Started wakeful broadcast receiver

At 2016-04-02 00:02: Started intent service

At 2016-04-02 00:02: Handle intent service

At 2016-04-02 00:02: Started WakeActivity

At 2016-04-02 00:02: Destroy intent service

编辑:这是我如何设置闹钟:

Intent intent = new Intent(SmartClockActivity.this, AlarmBroadcastReceiver.class);

PendingIntent pendingIntent = PendingIntent.getBroadcast(SmartClockActivity.this, 0, intent, 0);

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);

+1

请包括你如何设置报警 –

+0

@DavidMedenjak,完成。 –

总结

以上是生活随笔为你收集整理的android深度睡眠对广播有什么影响吗,为什么WakefulBroadcastReceiver不能将我的设备从深度睡眠中唤醒?...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。