Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓手机睡眠时显示活动_Android_Android Activity - Fatal编程技术网

Android 安卓手机睡眠时显示活动

Android 安卓手机睡眠时显示活动,android,android-activity,Android,Android Activity,我有一个广播接收器,他的工作是打开一个活动。(特别是当我收到某条短信时)。 当我的手机开机并且我使用它时,它工作得很好。 但当我的手机处于睡眠模式时,什么也不会发生。 我是否需要在广播接收器中添加代码来唤醒手机并释放屏幕锁(如果有),然后打开活动? 还是有更好的解决方案 这是广播接收器onReceive功能中的相关代码: //Create a new PendingIntent and add it to the AlarmManager Intent intent = new Inte

我有一个广播接收器,他的工作是打开一个活动。(特别是当我收到某条短信时)。 当我的手机开机并且我使用它时,它工作得很好。
但当我的手机处于睡眠模式时,什么也不会发生。
我是否需要在广播接收器中添加代码来唤醒手机并释放屏幕锁(如果有),然后打开活动?
还是有更好的解决方案

这是广播接收器onReceive功能中的相关代码:

    //Create a new PendingIntent and add it to the AlarmManager
Intent intent = new Intent(context, Alarm.class);
intent.putExtra("coordinates", coordinates);
PendingIntent pendingIntent = PendingIntent.getActivity(context,
    0, intent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager am = (AlarmManager)context.getSystemService(Activity.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 100, pendingIntent);

您需要使用WakeLock来完成此操作

本教程帮助我做到了以下几点:


还有一个更好的教程专门介绍wakelocks:

你读过这个吗?是的,但也许还有另一个解决办法。我如何检查是否需要这样做?(如果手机处于睡眠状态或未处于睡眠状态?)关键是,如果您使用唤醒锁,无论手机是否处于开机状态,手机都会执行其动作。它专门设计用于将手机从睡眠状态唤醒,并执行您的操作(因此您不需要检查-您只知道它将被执行,而不管手机处于何种状态),我如何检查是否需要执行该操作?(如果手机处于睡眠状态或未处于睡眠状态?)如果您希望确保发生某些事情,无论手机是否处于开机状态,您都将使用唤醒锁。这可确保无论手机是否处于唤醒状态,都能执行您的操作(因此您无需进行检查)。我添加了指向我使用的另一个有用教程的链接。