首页 > 解决方案 > Android 有时会在后台重新启动我的 React Native 应用程序

问题描述

我正在创建一个健身应用程序react-native 0.66.1。为了管理我的页面,我使用react-navigation 6

我的首页 HomeScreen 允许在实际进入应用程序之前加载用户数据:

import { useFocusEffect } from '@react-navigation/native'

const HomeScreen = ({ navigation }) => {
  useFocusEffect(
    useCallback(() => {
      // load user data and app configuration in context

      navigation.navigate('AppScreen')
    }, [])
  )

  return (
    <View>
      <ActivityIndicator />
      <Image ... logo />
    </View>
  )
}

在我的一个页面 ( StartGymScreen) 上,我使用 react-native 库react-native-countdown-circle-timer 进行了倒计时

一切正常,但有时当我将应用程序置于后台并返回时,它会通过HomeScreen. 因此,我的倒计时丢失了(我必须返回StartGymScreen并重新启动它)。

我认为(但我不确定)这是正常情况,“Android”有时会关闭应用程序以节省电池电量。

但我有几个问题:

标签: react-native

解决方案


正如您所说,这是正常行为,与您的应用程序无关。android 操作系统将为您的应用程序处理这些作业。

手机中有一些设置可以限制您的应用程序在后台运行。但这不是管理此问题的理想方法。

您的所有需求都是在后台继续运行您的应用程序

所以,有一些解决方案,比如使用headless Js。阅读更多关于 RN文档。您可以为您的应用程序创建不可停止的服务。你可以使用这篇文章来做到这一点。

此外,还有一个使用react-native-background-actions package的解决方案。


推荐阅读