如何从BroadcastManager中的Workmanager检查应用程序是否在前台?

卡里姆·切里莫·奥拉德(Karim Cherimo Aoulad)

是否可以通过BroadcastReceiver中的Workmanager检查应用程序是否在后台,已关闭或正在运行?我想在应用关闭或在后台时显示内部通知。

我已经找到了一些与此相关的主题,但是不幸的是,自Android 10以来,限制已更改,这使其变得更难了。

先感谢您

胡安·弗拉加(Juan Fraga)

您可以尝试这样的事情:

  1. 保存当前应用状态
class MyApplication : Application(), LifecycleObserver {

    private val sharedPreferences by lazy {
        PreferenceManager.getDefaultSharedPreferences(this)
    }

    override fun onCreate() {
        super.onCreate()
        ProcessLifecycleOwner.get().lifecycle.addObserver(this)
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    fun onAppBackgrounded() {
        sharedPreferences.edit(commit = true) { putString("isAppOnForeground", false) }
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    fun onAppForegrounded() {
        sharedPreferences.edit(commit = true) { putString("isAppOnForeground", true) }
    }
}
  1. 获取工作中的当前状态
class YourWorker constructor(
    private val context: Context,
    private val workParams: WorkerParameters
) : CoroutineWorker(context, workParams) {

    private val sharedPreferences by lazy {
        PreferenceManager.getDefaultSharedPreferences(context)
    }

    override suspend fun doWork(): Result {
        val isAppOnForeground = sharedPreferences.getBoolean("isAppOnForeground", false)
        ....
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查应用程序处于前台还是后台

来自分类Dev

iOS NSNotificationCenter检查应用程序是否从后台到前台

来自分类Dev

像Facebook,Whatsapp这样的Android应用程序如何在没有通知的情况下在前台提供服务?

来自分类Dev

在前台或后台运行Twisted应用程序的正确方法

来自分类Dev

当应用程序在前台时,iOS会在收到推送通知时播放声音

来自分类Dev

应用程序在前台运行时收到iOS推送通知

来自分类Dev

如何知道我的应用程序是在前台还是在后台,android?

来自分类Dev

使用usageStats.getTotalTimeInForeground()获取设备中每个应用程序花费在前台的时间

来自分类Dev

当应用程序在前台运行时,在iOS上调用Sinch shouldSendPushNotifications

来自分类Dev

检查应用程序是否正在运行(后台或前台)Android

来自分类Dev

如何检查特定应用程序是否在Android中运行

来自分类Dev

当应用程序出现在前台时重新加载CloudKit数据

来自分类Dev

仅当应用程序在前台运行时,openParentApplication才起作用

来自分类Dev

检查UWP应用程序是否在前景/焦点所在

来自分类Dev

如何检查应用程序是否在BroadcastReceiver中的前台背景中运行

来自分类Dev

应用程序在前台时如何处理Firebase通知

来自分类Dev

如何使用Node.js获取在Mac上在前台运行的应用程序窗口的坐标?

来自分类Dev

快速检测应用程序是在后台还是在前台

来自分类Dev

在前台时如何刷新本机Deeplink应用程序?

来自分类Dev

WorkManager:如何在同一应用程序中设置不同的WorkManager配置

来自分类Dev

我的应用程序不在前台时如何检查用户不活动

来自分类Dev

如何确定电子应用程序是否处于前台?

来自分类Dev

如何使我的应用程序处于前台?

来自分类Dev

如何在VB中检查应用程序是否为服务应用程序

来自分类Dev

如何检查应用程序是否在前台但在特定时间内未访问-iOS

来自分类Dev

当应用程序在前台时收到推送通知时,是否可以为 ios 显示横幅?

来自分类Dev

在 iOS 应用程序中显示通知,而应用程序在前台/在 swift 3 中处于活动状态

来自分类Dev

应用程序在前台时未触发通知 - iOS

来自分类Dev

如何在前台移动我的应用程序?

Related 相关文章

  1. 1

    如何检查应用程序处于前台还是后台

  2. 2

    iOS NSNotificationCenter检查应用程序是否从后台到前台

  3. 3

    像Facebook,Whatsapp这样的Android应用程序如何在没有通知的情况下在前台提供服务?

  4. 4

    在前台或后台运行Twisted应用程序的正确方法

  5. 5

    当应用程序在前台时,iOS会在收到推送通知时播放声音

  6. 6

    应用程序在前台运行时收到iOS推送通知

  7. 7

    如何知道我的应用程序是在前台还是在后台,android?

  8. 8

    使用usageStats.getTotalTimeInForeground()获取设备中每个应用程序花费在前台的时间

  9. 9

    当应用程序在前台运行时,在iOS上调用Sinch shouldSendPushNotifications

  10. 10

    检查应用程序是否正在运行(后台或前台)Android

  11. 11

    如何检查特定应用程序是否在Android中运行

  12. 12

    当应用程序出现在前台时重新加载CloudKit数据

  13. 13

    仅当应用程序在前台运行时,openParentApplication才起作用

  14. 14

    检查UWP应用程序是否在前景/焦点所在

  15. 15

    如何检查应用程序是否在BroadcastReceiver中的前台背景中运行

  16. 16

    应用程序在前台时如何处理Firebase通知

  17. 17

    如何使用Node.js获取在Mac上在前台运行的应用程序窗口的坐标?

  18. 18

    快速检测应用程序是在后台还是在前台

  19. 19

    在前台时如何刷新本机Deeplink应用程序?

  20. 20

    WorkManager:如何在同一应用程序中设置不同的WorkManager配置

  21. 21

    我的应用程序不在前台时如何检查用户不活动

  22. 22

    如何确定电子应用程序是否处于前台?

  23. 23

    如何使我的应用程序处于前台?

  24. 24

    如何在VB中检查应用程序是否为服务应用程序

  25. 25

    如何检查应用程序是否在前台但在特定时间内未访问-iOS

  26. 26

    当应用程序在前台时收到推送通知时,是否可以为 ios 显示横幅?

  27. 27

    在 iOS 应用程序中显示通知,而应用程序在前台/在 swift 3 中处于活动状态

  28. 28

    应用程序在前台时未触发通知 - iOS

  29. 29

    如何在前台移动我的应用程序?

热门标签

归档