Commit fed75f19 authored by wanglei's avatar wanglei

...workManager

parent d106351d
......@@ -22,7 +22,7 @@ import java.util.concurrent.atomic.AtomicBoolean
/**
* 发送通知的管理类,方便测试限制条件
*/
object NotificationManager {
object MyNotificationManager {
private val TAG = "NotificationManager"
......
package com.base.appzxhy.fcm.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.appzxhy.bean.NotificationSendBean
import com.base.appzxhy.bean.NotificationSendBean.Companion.POPUP_WHERE_WORK_MANAGER
import com.base.appzxhy.fcm.notification.MyNotificationManager
import com.base.appzxhy.helper.EventUtils
import java.util.concurrent.TimeUnit
class RepeatingWorker(val appContext: Context, workerParams: WorkerParameters) : Worker(appContext, workerParams) {
override fun doWork(): Result {
// 这里执行你的任务
// 例如,更新UI,发送网络请求等
EventUtils.event("workManager_live")
try {
val sendBean = NotificationSendBean(appContext, POPUP_WHERE_WORK_MANAGER, canSend = { true }, sendSuccess = {})
MyNotificationManager.submitSendBean(sendBean)
} catch (e: Exception) {
EventUtils.event("WorkManager Error")
}
return Result.success()
}
companion object {
const val TAG = "uniqueWorkName"
fun schedulePeriodicWork(context: Context) {
WorkManager.getInstance(context).cancelAllWorkByTag(TAG)
val request = PeriodicWorkRequestBuilder<RepeatingWorker>(15, TimeUnit.MINUTES)
.setConstraints(
Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build()
)
.build()
WorkManager.getInstance(context).enqueueUniquePeriodicWork(
TAG, ExistingPeriodicWorkPolicy.KEEP, request
)
}
}
}
\ 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