我正在創建一個健身應用程式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 檔案中沒有找到任何內容,這是什么解釋?
- 有沒有可能防止這種情況?有時應用程式會在后臺運行 1 分鐘后重新啟動。有時是 2,有時是 3……這是非常隨機的。
- 我有時會使用另一個健身應用程式(Hercules),它也有倒數計時器,但沒有這個問題,它是怎么做的?
uj5u.com熱心網友回復:
正如您所說,這是正常行為,與您的應用程式無關。android 作業系統將為您的應用程式處理這些作業。
手機中有一些設定可以限制您的應用程式在后臺運行。但這不是管理此問題的理想方式。
您的所有需求都是在后臺繼續運行您的應用程式。
所以,有一些解決方案,比如使用headless Js。閱讀有關 RN檔案的更多資訊。您可以為您的應用程式創建一個不可阻擋的服務。你可以使用這篇文章來做到這一點。
此外,還有一個使用react-native-background-actions package的解決方案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/347517.html
標籤:反应原生
