我正在開發一個必須執行一些后臺工作的應用程序。出于這個原因,我正在使用服務?,F在我想要實現的目標是假設用戶開始后臺工作,當工作正在加載時,用戶可以選擇最小化應用程序或等到加載結束。加載結束后我想打開另一個活動?,F在我的問題假設用戶開始加載并最小化應用程序,然后當加載結束時用戶尚未返回到應用程序然后如果我啟動屏幕而用戶甚至沒有在他的視圖中看到我的應用程序那么用戶可能會被打斷與他的工作。所以我想要的是當加載結束時,我只想在我的應用程序對用戶可見時打開,如果應用程序對用戶不可見,那么我想等到用戶返回并且只在用戶返回時打開返回 如果加載結束,我想打開屏幕?,F在我想的是我應該有一個布爾值來跟蹤應用程序是否對用戶可見。我onStop會將布爾值設置為 false,然后onStart將該值設置為 true。我將再次onStart檢查加載是否完成,如果是,我將打開屏幕。但是我想知道是否有更好的方法來實現這一點?如果是那么如何。我正在尋找更好的方法的原因是我想為我的應用程序編寫一個干凈的代碼,這可能會避免錯誤和崩潰。
1 回答

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
這正是LiveData和RxJava所針對的場景。只有當活動可見時,您的活動才會獲取數據。只有當您的活動可用并且它具有生命周期感知能力時,您的Viwemodel才會向活動提供您的實時數據。如果您的應用程序需要在用戶關閉您的應用程序后繼續工作,即使用戶重新啟動您的應用程序,您也可以考慮使用WorkManager 。它還帶有約束,可根據網絡、電池壽命優化您的工作……并為您的 Viewmodel 提供實時數據以供使用。
添加回答
舉報
0/150
提交
取消