Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
S
Scan QR Code Barcode Reader
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
Scan QR Code Barcode Reader
Commits
ef8253c3
Commit
ef8253c3
authored
Dec 30, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
51af905f
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
236 additions
and
60 deletions
+236
-60
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+29
-0
MyApplication.kt
app/src/main/java/com/base/scanqr/MyApplication.kt
+15
-6
AlarmReceiver.kt
app/src/main/java/com/base/scanqr/fcm/alarm/AlarmReceiver.kt
+38
-0
AlarmUtils.kt
app/src/main/java/com/base/scanqr/fcm/alarm/AlarmUtils.kt
+38
-0
MyNotificationManager.kt
...com/base/scanqr/fcm/notification/MyNotificationManager.kt
+14
-4
BatteryStatusReceiver.kt
...ava/com/base/scanqr/fcm/receiver/BatteryStatusReceiver.kt
+28
-37
PackageStatusReceiver.kt
...ava/com/base/scanqr/fcm/receiver/PackageStatusReceiver.kt
+12
-7
ScreenStatusReceiver.kt
...java/com/base/scanqr/fcm/receiver/ScreenStatusReceiver.kt
+2
-2
TimerManager.kt
app/src/main/java/com/base/scanqr/fcm/timer/TimerManager.kt
+10
-4
RepeatingWorker.kt
...src/main/java/com/base/scanqr/fcm/work/RepeatingWorker.kt
+50
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
ef8253c3
...
...
@@ -117,6 +117,35 @@
android:name=
"android.support.FILE_PROVIDER_PATHS"
android:resource=
"@xml/file_paths"
/>
</provider>
<receiver
android:name=
".fcm.alarm.AlarmReceiver"
android:enabled=
"true"
android:exported=
"true"
android:permission=
"android.permission.RECEIVE_BOOT_COMPLETED"
>
<intent-filter>
<action
android:name=
"android.intent.action.USER_PRESENT"
/>
<action
android:name=
"android.intent.action.BOOT_COMPLETED"
/>
<action
android:name=
"android.intent.action.ACTION_POWER_CONNECTED"
/>
<action
android:name=
"android.intent.action.ACTION_POWER_DISCONNECTED"
/>
</intent-filter>
<intent-filter>
<action
android:name=
"android.intent.action.PACKAGE_ADDED"
/>
<action
android:name=
"android.intent.action.PACKAGE_REMOVED"
/>
<action
android:name=
"android.intent.action.PACKAGE_REPLACED"
/>
<data
android:scheme=
"package"
/>
</intent-filter>
<intent-filter>
<action
android:name=
"android.net.wifi.WIFI_STATE_CHANGED"
/>
<action
android:name=
"android.net.wifi.STATE_CHANGE"
/>
</intent-filter>
<intent-filter>
<action
android:name=
"android.intent.action.MEDIA_EJECT"
/>
<action
android:name=
"android.intent.action.MEDIA_MOUNTED"
/>
<data
android:scheme=
"file"
/>
</intent-filter>
</receiver>
<service
android:name=
".service.StayJobService"
...
...
app/src/main/java/com/base/scanqr/MyApplication.kt
View file @
ef8253c3
...
...
@@ -14,11 +14,13 @@ import com.base.scanqr.bean.config.AdConfigBean
import
com.base.scanqr.bean.config.ConfigBean
import
com.base.scanqr.bean.config.PopupConfigBean
import
com.base.scanqr.fcm.FCMManager
import
com.base.scanqr.fcm.TimerManager.Companion.changeTimer
import
com.base.scanqr.fcm.notification.NotificationManager
import
com.base.scanqr.fcm.alarm.AlarmUtils.startAlarm
import
com.base.scanqr.fcm.timer.TimerManager.Companion.changeTimer
import
com.base.scanqr.fcm.notification.MyNotificationManager
import
com.base.scanqr.fcm.receiver.BatteryStatusReceiver
import
com.base.scanqr.fcm.receiver.PackageStatusReceiver
import
com.base.scanqr.fcm.receiver.ScreenStatusReceiver
import
com.base.scanqr.fcm.work.RepeatingWorker.Companion.schedulePeriodicWork
import
com.base.scanqr.helper.EventUtils
import
com.base.scanqr.helper.InstallHelps
import
com.base.scanqr.helper.NewComUtils
...
...
@@ -140,12 +142,19 @@ class MyApplication : Application() {
kotlin
.
runCatching
{
// startJob()
}
// startAlarm(appContext, 24)
// startAlarm(appContext, 48)
// startAlarm(appContext, 72)
//workManager
schedulePeriodicWork
(
appContext
)
//闹钟
startAlarm
(
appContext
,
24
)
startAlarm
(
appContext
,
48
)
startAlarm
(
appContext
,
72
)
//开启上报队列
NotificationManager
.
startNotificationQueue
()
MyNotificationManager
.
startNotificationQueue
()
}
...
...
app/src/main/java/com/base/scanqr/fcm/alarm/AlarmReceiver.kt
0 → 100644
View file @
ef8253c3
package
com.base.scanqr.fcm.alarm
import
android.annotation.SuppressLint
import
android.content.BroadcastReceiver
import
android.content.Context
import
android.content.Intent
import
com.base.scanqr.bean.NotificationSendBean
import
com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_ALARM
import
com.base.scanqr.fcm.notification.MyNotificationManager
import
com.base.scanqr.fcm.work.RepeatingWorker.Companion.schedulePeriodicWork
import
com.base.scanqr.helper.EventUtils
import
com.base.scanqr.utils.AppPreferences
import
com.base.scanqr.utils.LogEx
/**
*
*/
class
AlarmReceiver
:
BroadcastReceiver
()
{
private
val
TAG
=
"AlarmJobReceiver"
@SuppressLint
(
"UnsafeProtectedBroadcastReceiver"
)
override
fun
onReceive
(
context
:
Context
,
intent
:
Intent
?)
{
LogEx
.
logDebug
(
TAG
,
"AlarmJobReceiver onReceive"
)
val
lastAlarmTime
=
AppPreferences
.
getInstance
().
getLong
(
"lastAlarmTime"
,
0L
)
val
currentTime
=
System
.
currentTimeMillis
()
if
(
lastAlarmTime
==
0L
||
currentTime
-
lastAlarmTime
>=
1000
*
30
*
60
)
{
EventUtils
.
event
(
"alarm_push"
)
val
sendBean
=
NotificationSendBean
(
context
,
POPUP_WHERE_ALARM
,
canSend
=
{
true
},
sendSuccess
=
{})
MyNotificationManager
.
submitSendBean
(
sendBean
)
AppPreferences
.
getInstance
().
put
(
"lastAlarmTime"
,
System
.
currentTimeMillis
())
}
schedulePeriodicWork
(
context
)
return
}
}
\ No newline at end of file
app/src/main/java/com/base/scanqr/fcm/alarm/AlarmUtils.kt
0 → 100644
View file @
ef8253c3
package
com.base.scanqr.fcm.alarm
import
android.app.AlarmManager
import
android.app.PendingIntent
import
android.app.job.JobService
import
android.content.Context
import
android.content.Intent
import
com.base.scanqr.BuildConfig
import
com.base.scanqr.fcm.work.RepeatingWorker.Companion.schedulePeriodicWork
import
java.util.Calendar
object
AlarmUtils
{
fun
startAlarm
(
context
:
Context
,
hour
:
Int
)
{
// context.startJob()
//闹钟定时任务
val
alarmManager
=
context
.
getSystemService
(
JobService
.
ALARM_SERVICE
)
as
AlarmManager
val
pendingIntent
=
PendingIntent
.
getBroadcast
(
context
,
hour
,
Intent
(
context
,
AlarmReceiver
::
class
.
java
),
PendingIntent
.
FLAG_IMMUTABLE
or
PendingIntent
.
FLAG_UPDATE_CURRENT
)
val
calendar
=
Calendar
.
getInstance
()
val
hourOfDay
=
if
(
BuildConfig
.
DEBUG
)
0
else
6
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
hourOfDay
)
calendar
.
set
(
Calendar
.
MINUTE
,
0
)
calendar
.
set
(
Calendar
.
SECOND
,
0
)
val
oneHour
=
60
*
60
*
1000L
var
delay
=
oneHour
*
hour
if
(
BuildConfig
.
DEBUG
)
{
delay
=
1
*
60
*
1000L
}
alarmManager
.
setRepeating
(
AlarmManager
.
RTC_WAKEUP
,
calendar
.
timeInMillis
,
delay
,
pendingIntent
)
schedulePeriodicWork
(
context
)
}
}
\ No newline at end of file
app/src/main/java/com/base/scanqr/fcm/notification/NotificationManager.kt
→
app/src/main/java/com/base/scanqr/fcm/notification/
My
NotificationManager.kt
View file @
ef8253c3
...
...
@@ -8,7 +8,12 @@ import com.base.scanqr.bean.NotificationSendBean.Companion.ACTION_ID_SCAN
import
com.base.scanqr.bean.NotificationSendBean.Companion.ACTION_ID_TEXT
import
com.base.scanqr.bean.NotificationSendBean.Companion.ACTION_ID_WEBSITE
import
com.base.scanqr.bean.NotificationSendBean.Companion.ACTION_ID_WIFI
import
com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_ALARM
import
com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_BATTERY
import
com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_LOCK
import
com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_PACKAGE
import
com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_TIMBER
import
com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_WORK_MANAGER
import
com.base.scanqr.bean.config.PopupConfigBean.Companion.popupConfigBean
import
com.base.scanqr.helper.EventUtils
import
com.base.scanqr.utils.AppPreferences
...
...
@@ -27,9 +32,9 @@ import java.util.concurrent.atomic.AtomicBoolean
/**
* 发送通知的管理类,方便测试限制条件
*/
object
NotificationManager
{
object
My
NotificationManager
{
private
val
TAG
=
"NotificationManager"
private
val
TAG
=
"
My
NotificationManager"
private
var
sendBeanBlockingQueue
=
ArrayBlockingQueue
<
NotificationSendBean
>(
10
)
...
...
@@ -144,7 +149,7 @@ object NotificationManager {
//是否开启推送
if
(!
popupConfigBean
.
popupStatus
)
{
EventUtils
.
event
(
"Notification_Error"
,
"status=${popupConfigBean.popupStatus}"
)
LogEx
.
logDebug
(
"canSendNotification"
,
"status
"
)
LogEx
.
logDebug
(
TAG
,
"status=${popupConfigBean.popupStatus}
"
)
if
(
BuildConfig
.
DEBUG
)
{
MainScope
().
launch
(
Dispatchers
.
Main
)
{
context
.
toast
(
"配置关闭推送"
)
...
...
@@ -187,6 +192,11 @@ object NotificationManager {
* 只测某些类型
*/
private
var
testWhere
=
listOf
(
POPUP_WHERE_LOCK
// POPUP_WHERE_LOCK,
// POPUP_WHERE_BATTERY,
// POPUP_WHERE_PACKAGE,
// POPUP_WHERE_WORK_MANAGER,
// POPUP_WHERE_ALARM
POPUP_WHERE_TIMBER
)
}
\ No newline at end of file
app/src/main/java/com/base/scanqr/fcm/receiver/BatteryStatusReceiver.kt
View file @
ef8253c3
...
...
@@ -6,11 +6,12 @@ import android.content.Intent
import
android.content.IntentFilter
import
android.os.BatteryManager
import
android.os.Build
import
com.base.scanqr.bean.NotificationSendBean
import
com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_BATTERY
import
com.base.scanqr.bean.config.PopupConfigBean.Companion.popupConfigBean
import
com.base.scanqr.fcm.notification.MyNotificationManager
import
com.base.scanqr.helper.EventUtils
import
com.base.scanqr.utils.AppPreferences
import
com.base.scanqr.utils.KotlinExt.currentDate
import
com.base.scanqr.utils.LogEx
import
kotlin.math.absoluteValue
...
...
@@ -43,18 +44,6 @@ class BatteryStatusReceiver() : BroadcastReceiver() {
}
/**
* 当前天推送数量
*/
private
var
todayBatteryPush
=
0
get
()
{
return
AppPreferences
.
getInstance
().
getInt
(
"todayBatteryPush_${currentDate()}"
,
field
)
}
set
(
value
)
{
field
=
value
AppPreferences
.
getInstance
().
put
(
"todayBatteryPush_${currentDate()}"
,
value
,
true
)
}
/**
* 上次成功推送
*/
...
...
@@ -75,27 +64,13 @@ class BatteryStatusReceiver() : BroadcastReceiver() {
if
(!
popupConfigBean
.
batteryS
)
return
false
val
popupBatteryCount
=
popupConfigBean
.
popupBatteryValue
val
flag1
=
todayBatteryPush
<=
popupBatteryCount
val
minute
=
60
*
1000L
val
interval
=
popupConfigBean
.
popupBatteryInterval
val
passTime
=
System
.
currentTimeMillis
()
-
batteryLastPushTime
val
flag2
=
batteryLastPushTime
==
0L
||
passTime
>
interval
*
minute
val
flag
=
flag1
&&
flag2
val
flag
=
batteryLastPushTime
==
0L
||
passTime
>
interval
*
minute
if
(!
flag
)
{
EventUtils
.
event
(
"Notification_Error"
,
"todayBatteryPush=$todayBatteryPush "
+
"popupBatteryCount=$popupBatteryCount where=$POPUP_WHERE_BATTERY"
)
LogEx
.
logDebug
(
"canSendNotification"
,
"Notification_Error todayBatteryPush=$todayBatteryPush "
+
"popupBatteryCount=$popupBatteryCount where=$POPUP_WHERE_BATTERY"
)
EventUtils
.
event
(
"Notification_Error"
,
"interval=$interval passTime=$passTime where=$POPUP_WHERE_BATTERY"
)
}
return
flag
}
...
...
@@ -104,11 +79,8 @@ class BatteryStatusReceiver() : BroadcastReceiver() {
/**
* 推送成功后保存值
*/
fun
saveBatteryPushedData
(
where
:
String
,
actionId
:
String
)
{
if
(
where
==
POPUP_WHERE_BATTERY
)
{
todayBatteryPush
+=
1
batteryLastPushTime
=
System
.
currentTimeMillis
()
}
fun
saveBatteryPushedData
()
{
batteryLastPushTime
=
System
.
currentTimeMillis
()
}
...
...
@@ -117,6 +89,7 @@ class BatteryStatusReceiver() : BroadcastReceiver() {
private
var
currentBatteryPercentage
=
0f
override
fun
onReceive
(
context
:
Context
,
intent
:
Intent
?)
{
// LogEx.logDebug(TAG, "onReceive")
val
action
=
intent
?.
action
when
(
action
)
{
...
...
@@ -128,16 +101,34 @@ class BatteryStatusReceiver() : BroadcastReceiver() {
//避免频繁触发
val
changeValue
=
currentBatteryPercentage
-
batteryPercentage
if
(
batteryPercentage
<
21
&&
changeValue
.
absoluteValue
>=
1f
)
{
if
(
batteryPercentage
<
popupConfigBean
.
popupBatteryValue
&&
changeValue
.
absoluteValue
>=
1f
)
{
//推送次数没有达到限制并且展示的最小时间间隔大于配置时间(分钟)
// NotificationUiUtil.sendNotificationIfCan(context, POPUP_WHERE_BATTERY, null)
LogEx
.
logDebug
(
TAG
,
"onReceive changed"
)
val
sendBean
=
NotificationSendBean
(
context
,
POPUP_WHERE_BATTERY
,
canSend
=
{
canBatteryStatusReceiverPush
()
},
sendSuccess
=
{
saveBatteryPushedData
()
})
MyNotificationManager
.
submitSendBean
(
sendBean
)
}
currentBatteryPercentage
=
batteryPercentage
}
Intent
.
ACTION_POWER_CONNECTED
->
{
// NotificationUiUtil.sendNotificationIfCan(context, POPUP_WHERE_BATTERY, null)
LogEx
.
logDebug
(
TAG
,
"onReceive connected"
)
val
sendBean
=
NotificationSendBean
(
context
,
POPUP_WHERE_BATTERY
,
canSend
=
{
canBatteryStatusReceiverPush
()
},
sendSuccess
=
{
saveBatteryPushedData
()
})
MyNotificationManager
.
submitSendBean
(
sendBean
)
}
}
...
...
app/src/main/java/com/base/scanqr/fcm/receiver/PackageStatusReceiver.kt
View file @
ef8253c3
...
...
@@ -5,8 +5,10 @@ import android.content.Context
import
android.content.Intent
import
android.content.IntentFilter
import
android.os.Build
import
com.base.scanqr.bean.NotificationSendBean
import
com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_PACKAGE
import
com.base.scanqr.bean.config.PopupConfigBean.Companion.popupConfigBean
import
com.base.scanqr.fcm.notification.MyNotificationManager
import
com.base.scanqr.helper.EventUtils
import
com.base.scanqr.utils.AppPreferences
import
com.base.scanqr.utils.KotlinExt.currentDate
...
...
@@ -95,11 +97,9 @@ class PackageStatusReceiver() : BroadcastReceiver() {
/**
* 推送成功后保存值
*/
fun
savePackagePushedData
(
where
:
String
,
actionId
:
String
)
{
if
(
where
==
POPUP_WHERE_PACKAGE
)
{
todayPackagePush
+=
1
packageLastPushTime
=
System
.
currentTimeMillis
()
}
fun
savePackagePushedData
()
{
todayPackagePush
+=
1
packageLastPushTime
=
System
.
currentTimeMillis
()
}
...
...
@@ -110,8 +110,13 @@ class PackageStatusReceiver() : BroadcastReceiver() {
LogEx
.
logDebug
(
TAG
,
"onReceive action=$action"
)
if
(
action
==
Intent
.
ACTION_PACKAGE_ADDED
||
action
==
Intent
.
ACTION_PACKAGE_REMOVED
)
{
// NotificationUiUtil.sendNotificationIfCan(context, POPUP_WHERE_PACKAGE)
}
val
sendBean
=
NotificationSendBean
(
context
,
POPUP_WHERE_PACKAGE
,
canSend
=
{
canPackageStatusReceiverPush
()
},
sendSuccess
=
{
savePackagePushedData
()
})
MyNotificationManager
.
submitSendBean
(
sendBean
)
}
}
}
\ No newline at end of file
app/src/main/java/com/base/scanqr/fcm/receiver/ScreenStatusReceiver.kt
View file @
ef8253c3
...
...
@@ -8,7 +8,7 @@ import android.os.Build
import
com.base.scanqr.bean.NotificationSendBean
import
com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_LOCK
import
com.base.scanqr.bean.config.PopupConfigBean.Companion.popupConfigBean
import
com.base.scanqr.fcm.notification.NotificationManager
import
com.base.scanqr.fcm.notification.
My
NotificationManager
import
com.base.scanqr.helper.EventUtils
import
com.base.scanqr.utils.AppPreferences
import
com.base.scanqr.utils.KotlinExt.currentDate
...
...
@@ -39,7 +39,7 @@ class ScreenStatusReceiver : BroadcastReceiver() {
POPUP_WHERE_LOCK
,
canSend
=
{
canScreenStatusReceiverPush
()
},
sendSuccess
=
{
saveScreenPushedData
()
})
NotificationManager
.
submitSendBean
(
sendBean
)
My
NotificationManager
.
submitSendBean
(
sendBean
)
}
}
}
...
...
app/src/main/java/com/base/scanqr/fcm/TimerManager.kt
→
app/src/main/java/com/base/scanqr/fcm/
timer/
TimerManager.kt
View file @
ef8253c3
package
com.base.scanqr.fcm
package
com.base.scanqr.fcm
.timer
import
com.base.scanqr.MyApplication
import
com.base.scanqr.bean.NotificationSendBean
import
com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_TIMBER
import
com.base.scanqr.bean.config.PopupConfigBean.Companion.popupConfigBean
import
com.base.scanqr.fcm.notification.MyNotificationManager
import
com.base.scanqr.fcm.receiver.ScreenStatusReceiver
import
com.base.scanqr.utils.LogEx
import
com.base.scanqr.utils.LogEx.logDebug
import
java.util.Timer
import
java.util.TimerTask
...
...
@@ -10,7 +14,6 @@ import java.util.TimerTask
class
TimerManager
private
constructor
()
{
private
val
TAG
=
"TimerManager"
private
var
taskTimer
:
Timer
?
=
null
private
var
isTaskTimerActive
:
Boolean
=
false
...
...
@@ -27,7 +30,9 @@ class TimerManager private constructor() {
&&
!
ScreenStatusReceiver
.
isSecureLockActive
&&
MyApplication
.
PAUSED_VALUE
!=
1
)
{
// sendNotificationIfCan(MyApplication.appContext, PopupConstObject.POPUP_WHERE_TIMBER, null)
val
sendBean
=
NotificationSendBean
(
MyApplication
.
appContext
,
POPUP_WHERE_TIMBER
,
canSend
=
{
true
},
sendSuccess
=
{})
MyNotificationManager
.
submitSendBean
(
sendBean
)
}
}
}
...
...
@@ -54,9 +59,9 @@ class TimerManager private constructor() {
companion
object
{
private
val
TAG
=
"TimerManager"
private
val
instance
:
TimerManager
by
lazy
((
LazyThreadSafetyMode
.
SYNCHRONIZED
))
{
TimerManager
()
}
fun
changeTimer
()
{
if
(!
popupConfigBean
.
timerS
)
{
...
...
@@ -64,6 +69,7 @@ class TimerManager private constructor() {
}
else
{
val
timerDelay
:
Int
=
popupConfigBean
.
timerDelay
val
timerInterval
:
Int
=
popupConfigBean
.
timerInterval
LogEx
.
logDebug
(
TAG
,
"timerDelay=$timerDelay timerInterval=$timerInterval"
)
val
isTaskTimerActive
=
instance
.
isTaskTimerActive
if
(!
isTaskTimerActive
)
{
...
...
app/src/main/java/com/base/scanqr/fcm/work/RepeatingWorker.kt
0 → 100644
View file @
ef8253c3
package
com.base.scanqr.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.scanqr.bean.NotificationSendBean
import
com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_WORK_MANAGER
import
com.base.scanqr.fcm.notification.MyNotificationManager
import
com.base.scanqr.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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment