当应用程序未在 Android 上运行时,使用 React Native 在状态栏上显示通知图标

Posted

技术标签:

【中文标题】当应用程序未在 Android 上运行时,使用 React Native 在状态栏上显示通知图标【英文标题】:Show notification icon on status bar with React Native when app is not running on Android 【发布时间】:2021-02-24 08:19:36 【问题描述】:

我的 React Native 应用程序有一个情况,用户可以启动一个计时器,isRunningstartTime 状态存储在应用程序中,以便当应用程序处于前台时它可以显示当前运行时间,即使用户在某个时候退出应用程序并再次打开它。

有没有办法在计时器运行时在状态栏上显示通知图标,但用户已经退出应用程序以指示计时器当前正在后台“运行”(实际上它没有在后台执行任何操作)?

我遇到了一些应用程序在我退出应用程序后显示无法直接关闭的静默通知,但我没有看到状态栏通知存在的情况(连同通知一起),直到满足某些条件后该应用已被用户退出。

有没有办法做到这一点?我正在使用 react-native-push-notification 和 Firebase 在我的应用中推送通知。

【问题讨论】:

【参考方案1】:

React-Native 只管理 Active 和 Background/Inactive/Foreground 状态。当用户杀死应用程序时。 JS 引擎关闭。

您可以使用的只有本地通知和预定通知。我还有一个应用程序,用户可以在其中设置提醒时间。并在指定时间调用通知。

使用 Firebase,我猜您需要在特定时间间隔后调用 api,以便从服务器端推送通知。

【讨论】:

【参考方案2】:

我不是后台服务或 android 开发方面的专家,但这是我的想法……我相信您可以深入研究并编写一些 java android 代码来实现后台不可停止的服务(在应用程序关闭或后台状态下持续存在)。您可以通过创建桥接并使用本机模块来管理您的后台服务来做到这一点。我遇到了一个很棒的resource on medium,它详细介绍了创建后台服务、广播接收器和维护无头实例的过程,即使在应用程序关闭或设备重新启动时也是如此。希望能帮助您实现目标。

编辑

This现成的包会帮助你更好。看看这个。您实际上根本不必编写本机 android java 代码。

【讨论】:

谢谢,会调查的! 检查github.com/vikeri/react-native-background-job out

以上是关于当应用程序未在 Android 上运行时,使用 React Native 在状态栏上显示通知图标的主要内容,如果未能解决你的问题,请参考以下文章

应用程序未在带有 ADT 包的 Eclipse 上运行

[在新计算机上运行项目或删除数据库文件夹时,未在Android Studio中创建SQLite数据库

Android 应用程序未在 Com.onesignal 通知中启动单击

Worklight 6.2 Android 应用程序未在推送通知上启动

iPad Ad hoc 版本未在设备上运行

异步函数未在android上返回