服务一段时间后自动呼叫功能
Auto call function after some time with service
我想用 api 方法调用一个函数来 @Post
一些信息,比如来自通知 (FCM) 的注册令牌。
当应用程序将被终止时,它也应该被触发。
实现此功能的最佳方式是什么?我可以使用某种通知服务来实现它,还是应该像下面的示例一样提供其他服务。
Android: keep Service running when app is killed
编辑 1:
fun autoConsumingSendingToken() {
Log.d("tokenworker", "5 AUTOCONSUMING MAINACTIVITY")
val myWorkRequest: WorkRequest =
PeriodicWorkRequestBuilder<AutoTokenWorker>(20, TimeUnit.SECONDS).build()
WorkManager
.getInstance(applicationContext)
.enqueue(myWorkRequest)
}
应对这种情况的最佳方法是使用 Android WorkManager。
基本上,您必须声明一个 class 包含您要执行的工作:
class MyWorker(appContext: Context, workerParams: WorkerParameters):
Worker(appContext, workerParams) {
override fun doWork(): Result {
//call your function
return Result.success()
}
}
然后创建并安排您的工作:
val myWorkRequest: WorkRequest =
PeriodicWorkRequestBuilder<MyWorker>(1, TimeUnit.HOURS).build()
WorkManager
.getInstance(myContext)
.enqueue(myWorkRequest)
您可以根据需要调整工作时间表。
我想用 api 方法调用一个函数来 @Post
一些信息,比如来自通知 (FCM) 的注册令牌。
当应用程序将被终止时,它也应该被触发。
实现此功能的最佳方式是什么?我可以使用某种通知服务来实现它,还是应该像下面的示例一样提供其他服务。
Android: keep Service running when app is killed
编辑 1:
fun autoConsumingSendingToken() {
Log.d("tokenworker", "5 AUTOCONSUMING MAINACTIVITY")
val myWorkRequest: WorkRequest =
PeriodicWorkRequestBuilder<AutoTokenWorker>(20, TimeUnit.SECONDS).build()
WorkManager
.getInstance(applicationContext)
.enqueue(myWorkRequest)
}
应对这种情况的最佳方法是使用 Android WorkManager。
基本上,您必须声明一个 class 包含您要执行的工作:
class MyWorker(appContext: Context, workerParams: WorkerParameters):
Worker(appContext, workerParams) {
override fun doWork(): Result {
//call your function
return Result.success()
}
}
然后创建并安排您的工作:
val myWorkRequest: WorkRequest =
PeriodicWorkRequestBuilder<MyWorker>(1, TimeUnit.HOURS).build()
WorkManager
.getInstance(myContext)
.enqueue(myWorkRequest)
您可以根据需要调整工作时间表。