首页 > 解决方案 > 为什么 setExact() 警报管理器方法忽略了我的间隔时间?

问题描述

我正在尝试设置警报以在 10 秒后在我的应用程序中显示 Toast 消息,但出于任何原因,此消息会在 6 秒后显示,并且它忽略了我传递给 setExact 方法的时间:

AlarmManager mgr=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i=new Intent(context, processTimerReceiver.class);            
PendingIntent pi=PendingIntent.getBroadcast(context, 0, i, 0);
mgr.setExact(AlarmManager.RTC_WAKEUP,10000, pi);

这是我的接收器类:

public class processTimerReceiver extends BroadcastReceiver {   
    @Override
    public void onReceive(Context context, Intent intent) {

        Toast.makeText(context, "Time is up", Toast.LENGTH_SHORT).show();

    }
}

我的清单中的接收者:

<receiver android:name=".processTimerReceiver" >
    <intent-filter>
        <action android:name="processTimerReceiver" >
        </action>
    </intent-filter>
</receiver>

我究竟做错了什么?

我正在 Android 8.0 Oreo 设备上进行测试。

标签: javaandroidbroadcastreceiveralarmmanager

解决方案


推荐阅读