微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在AndroidKotlin中完全关闭该应用程序后,如何运行我的警报

如何解决在AndroidKotlin中完全关闭该应用程序后,如何运行我的警报

我正在创建一个自定义警报应用程序,这意味着我必须运行一段代码(例如,调用一个Intent,以便它打开一个可以停止警报的屏幕)。实现此目标的最佳方法是什么?

我在警报管理器中尝试过并使用

<receiver android:name=".receiver.AlarmReceiver"
        android:process=":remote"></receiver>

在清单文件

在我的代码中,我称之为

  var alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
    val intent = Intent(context,AlarmReceiver::class.java)
    val pendingIntent = PendingIntent.getbroadcast(context,intent,0)
    alarmManager.setExact(AlarmManager.RTC_WAKEUP,System.currentTimeMillis() + 10000,pendingIntent )

10000,因为我想测试它,如果它在10秒后被调用

这是制作闹钟应用程序的最佳方法吗?

解决方法

简单的“是”对于SO的回答来说太少了,因此我只能补充说,确切的警报消耗的电量比不精确的要多,因此针对用户使用两种类型。不过,因为闹钟应用的广播通话应该准确,所以继续使用该解决方案

也来自doc

注意:警报管理器适用于您希望在特定时间运行应用程序代码的情况,即使您的应用程序当前未运行。对于正常的计时操作(滴答声,超时等),使用Handler会更容易且效率更高。

,还请注意自API19以来的更改(如果您想支持这样的旧版本):

注意:从API 19(Build.VERSION_CODES.KITKAT)开始,警报传递是不精确的:操作系统将转移警报,以最大程度地减少唤醒和电池消耗。有新的API支持需要严格交付保证的应用程序。请参见setWindow(int,long,long,android.app.PendingIntent)和setExact(int,long,android.app.PendingIntent)。 targetSdkVersion早于API 19的应用程序将继续看到以前的行为,在该行为中,所有警报均在请求时准确地传递。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。