java - 为什么 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 设备上进行测试。
解决方案
推荐阅读
- javascript - 使用存储查找字符串的数组和存储替换字符串的数组替换文件中的字符串
- android - 如何使用 navigateUp 关闭应用程序
- python - 当网站上的产品被覆盖层隐藏时,如何获取它们的名称?
- scala - 为什么 val 声明不遵循 scala 常量命名约定?
- javascript - 检查是点击或悬停事件 - jQuery
- css - 如何使整个数据表行成为有角度的材质按钮
- knex.js - `knex.js` 播种时违反外键约束
- java - 获取 java.sql.SQLFeatureNotSupportedException:不支持的功能:checkValidIndex 异常
- android - kotlin 全局活动视图引用以在片段中使用
- php - AJAX 如何循环浏览每个文件夹的内容而不重复?