-1

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

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

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

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

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

4

1 回答 1

1

这正是LiveDataRxJava的应用场景。只有当活动可见时,您的活动才会获取数据。仅当您的活动可用且可感知生命周期时,您的Viwemodel才会将您的实时数据提供给活动。如果您的应用程序需要在用户关闭您的应用程序后继续运行,即使用户重新启动您的应用程序,您也可以考虑使用WorkManager 。它还带有约束,可根据网络、电池寿命优化您的工作……并提供实时数据供您的 Viewmodel 使用。

于 2019-06-02T01:26:45.317 回答