我要实现的是创建一个Service(?),一旦安装了Application,它便启动/获取注册,并将监视器项存储在Array中。这些项目是具有到期日期的产品,因此,如果今天是到期日期,则无论应用程序当前是否在运行,我都希望显示有关此消息的通知。
我已经在互联网和Android开发者网站上搜索了答案,这是我所学到的:
我不知道该怎么办:
通常,我知道基础知识以及它应该如何工作,但是我缺乏如何实现它的概念,因此它将有效。
感谢所有答案! :)
//编辑
到目前为止,我的自定义服务的一些代码:
class ExpiryMonitorService : Service() {
private val productsArray: ArrayList<ProductEntry> = ArrayList()
// Binder which will be given to clients
private val mBinder: IBinder = LocalBinder()
inner class LocalBinder : Binder() {
fun getService() : ExpiryMonitorService {
// Return this instance of ExpiryMonitorService so clients can call public methods
return this@ExpiryMonitorService
}
}
override fun onBind(intent: Intent?): IBinder {
return mBinder
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
return START_STICKY // Restart this service if it gets killed by the system
}
}
答案 0 :(得分:1)
答案不是一项服务。它的AlarmManager(或JobScheduler)设置为关闭到期项目的到期时间,以及项目和到期日期的数据库。作业结束后,它将发送通知,并根据数据库中的数据安排下一个警报/作业。
服务不是解决方案,因为服务可以随时被资源占用。此外,在现代版本的Android上,服务在被终止之前可以进行多少后台处理受到限制。这些都不是一个好的监视解决方案。幸运的是,您实际上不需要监视,只需要在特定时间收到警报即可,这非常适合发出警报。