猿问

当应用程序进入前台时执行操作

我正在开发一个必须执行一些后台工作的应用程序。出于这个原因,我正在使用服务。现在我想要实现的目标是假设用户开始后台工作,当工作正在加载时,用户可以选择最小化应用程序或等到加载结束。

加载结束后我想打开另一个活动。现在我的问题假设用户开始加载并最小化应用程序,然后当加载结束时用户尚未返回到应用程序然后如果我启动屏幕而用户甚至没有在他的视图中看到我的应用程序那么用户可能会被打断与他的工作。

所以我想要的是当加载结束时,我只想在我的应用程序对用户可见时打开,如果应用程序对用户不可见,那么我想等到用户返回并且只在用户返回时打开返回 如果加载结束,我想打开屏幕。

现在我想的是我应该有一个布尔值来跟踪应用程序是否对用户可见。我onStop会将布尔值设置为 false,然后onStart将该值设置为 true。我将再次onStart检查加载是否完成,如果是,我将打开屏幕。

但是我想知道是否有更好的方法来实现这一点?如果是那么如何。我正在寻找更好的方法的原因是我想为我的应用程序编写一个干净的代码,这可能会避免错误和崩溃。


catspeake
浏览 83回答 1
1回答

明月笑刀无情

这正是LiveData和RxJava所针对的场景。只有当活动可见时,您的活动才会获取数据。只有当您的活动可用并且它具有生命周期感知能力时,您的Viwemodel才会向活动提供您的实时数据。如果您的应用程序需要在用户关闭您的应用程序后继续工作,即使用户重新启动您的应用程序,您也可以考虑使用WorkManager 。它还带有约束,可根据网络、电池寿命优化您的工作……并为您的 Viewmodel 提供实时数据以供使用。
随时随地看视频慕课网APP

相关分类

Java
我要回答