我有一個在 Android 和 iOS 上運行的應用程式顫振。
此應用程式用于沒有任何互聯網連接的地區。當用戶到達某個有互聯網連接的地方時,必須將所有離線資料發送到服務器。
運行后臺任務并檢查互聯網連接的回圈,甚至是回圈計劃任務都不是一種選擇,因為:
- 從在現場使用應用程式到用戶使用 Internet 連接到位之間的那一刻可能需要幾個小時。
- 在后臺運行執行緒會消耗資源并消耗手機電池。
- Android/iOS 可能會完成后臺行程,除非用戶打開應用程式,否則不會發送資料。
我想知道如何注冊一種偵聽器,偵聽作業系統廣播的“互聯網連接事件”,這將喚醒我的應用程式并觸發回呼。
然后,我不必讓不必要的后臺任務無限運行,但是當移動設備連接到互聯網時,即使我的應用程式關閉/休眠,我仍然可以完成這項作業。
我怎么能在顫振中做到這一點?
uj5u.com熱心網友回復:
有一個包可以監聽連接狀態,稱為connectivity_plus,你可以像這樣訂閱一個流:
import 'package:connectivity_plus/connectivity_plus.dart';
@override
initState() {
super.initState();
subscription = Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {
// Got a new connectivity status!
})
}
// Be sure to cancel subscription after you are done
@override
dispose() {
super.dispose();
subscription.cancel();
}
但是在檔案中,它明確指出從 Android O 開始,連接更改不再在后臺傳達給 Android 應用程式。當您的應用程式恢復時,您應該始終檢查連接狀態。廣播僅在您的應用程式處于前臺時才有用。
你可能想研究一下,看看是否有可能在后臺這樣做。這是一個類似的問題,可能會幫助你
uj5u.com熱心網友回復:
您可以嘗試后臺任務并添加您選擇的延遲。那應該作業。請檢查此鏈接。https://pub.dev/packages/flt_worker_nullsafety
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/340047.html
