Commit 8510c038 authored by wanglei's avatar wanglei

workmanager

parent c011d238
......@@ -134,5 +134,8 @@ dependencies {
//mintegral
implementation("com.reyun.solar.engine.oversea:solar-engine-core:1.2.8.3")
//work
implementation("androidx.work:work-runtime-ktx:2.7.1") // 请使用最新版本
}
}
\ No newline at end of file
......@@ -7,6 +7,7 @@ object PopupConstObject {
const val POPUP_WHERE_TIMBER = "Timer"
const val POPUP_WHERE_LOCK = "Lock"
const val POPUP_WHERE_FCM = "fcm"
const val POPUP_WHERE_WORK_MANAGER = "workmanager"
const val POPUP_WHERE_MEDIA_CHANGE = "media_change"
const val POPUP_WHERE_HOVER_HANDLE = "hover_handle"//悬停调用
......
......@@ -15,6 +15,7 @@ import com.base.pdfviewerscannerwhite.utils.ActivityManagerUtils
import com.base.pdfviewerscannerwhite.utils.AppPreferences
import com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatMinute
import com.base.pdfviewerscannerwhite.utils.LogEx
import com.base.pdfviewerscannerwhite.work.schedulePeriodicWork
import com.facebook.FacebookSdk
import com.reyun.solar.engine.OnAttributionListener
import com.reyun.solar.engine.OnInitializationCallback
......@@ -58,6 +59,8 @@ class MyApplication : Application() {
initApp()
PDFBoxResourceLoader.init(applicationContext)
initWeather()
schedulePeriodicWork(this)
}
private fun initWeather() {
......
package com.base.pdfviewerscannerwhite.work
import android.content.Context
import androidx.work.Constraints
import androidx.work.ExistingPeriodicWorkPolicy
import androidx.work.NetworkType
import androidx.work.PeriodicWorkRequestBuilder
import androidx.work.WorkManager
import androidx.work.Worker
import androidx.work.WorkerParameters
import com.base.pdfviewerscannerwhite.fcm.NotificationUiUtil.getNextActionId
import com.base.pdfviewerscannerwhite.fcm.NotificationUiUtil.sendNotificationIfCan
import com.base.pdfviewerscannerwhite.fcm.PopupConstObject
import com.base.pdfviewerscannerwhite.helper.EventUtils
import java.util.concurrent.TimeUnit
fun schedulePeriodicWork(context: Context) {
val request = PeriodicWorkRequestBuilder<RepeatingWorker>(15, TimeUnit.MINUTES)
.setConstraints(
Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build()
)
.build()
WorkManager.getInstance(context).enqueueUniquePeriodicWork(
"uniqueWorkName",
ExistingPeriodicWorkPolicy.KEEP,
request
)
}
class RepeatingWorker(val appContext: Context, workerParams: WorkerParameters) : Worker(appContext, workerParams) {
override fun doWork(): Result {
// 这里执行你的任务
// 例如,更新UI,发送网络请求等
EventUtils.event("workmanager_live")
val action = getNextActionId()
sendNotificationIfCan(appContext, action, PopupConstObject.POPUP_WHERE_WORK_MANAGER)
return Result.success()
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment