gpt4 book ai didi

android - 定时器任务仅在电话唤醒时有效

转载 作者:行者123 更新时间:2023-11-30 03:59:49 24 4
gpt4 key购买 nike

我有一个 Activity ,从警报广播接收器调用,每 N 秒播放一次通知声音。这是通过以下代码实现的:

repeating_notification_sound_timer.schedule(ring_the_buzzer_task, 0, 1000 * N);

在 Activity 的 onCreate 函数的早期,我有以下代码:

pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG");
wakeLock.acquire();

只要手机在触发警报时处于唤醒状态,这一切都可以正常工作。但是,如果手机处于 sleep 状态,通知声音只会播放一次,再也不会播放。该程序不会崩溃或报告任何错误。好像 repeating_notification_sound_timer 只能工作一次!有什么想法吗?

编辑:首先是设置闹钟的代码:

static void set_alarm(long alarm_time_in_millis,Context cont,AlarmManager alarm_manager,String str)
{
Intent launchIntent = new Intent(cont, to_call_when_alarm_goes_off.class);

launchIntent.putExtra("string_passed_in_bundle", str);

launchIntent.setAction(to_call_when_alarm_goes_off.CUSTOM_INTENT);

PendingIntent pIntent = PendingIntent.getBroadcast(cont,0, launchIntent, 0);
alarm_manager.cancel(pIntent);

alarm_manager.set(AlarmManager.RTC_WAKEUP,alarm_time_in_millis, pIntent);
}

编辑:在我的 list 中:

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

最佳答案

您需要将您的 AlarmManager 闹钟设置为唤醒真实性,否则广播将等待触发,直到您的手机被其他东西唤醒。

以太 RTC_WAKEUP

ELAPSED_REALTIME_WAKEUP

具体情况请提供您的报警代码。

关于android - 定时器任务仅在电话唤醒时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12675721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com