通过按后退按钮关闭应用程序时取消Retrofit + RxJava调用

问题描述 投票:2回答:1

我有一个使用retrofit2RxJava进行网络调用的库模块。在应用启动时进行呼叫,并在成功后显示吐司消息。启动应用程序后,如果我在结果出现之前使用后退键关闭应用程序,则会在一段时间后显示Toast,这意味着呼叫在后台运行。我不要如果我关闭应用程序,则应取消网络通话。如果我从最近的应用程序中删除了该应用程序,则不会发生。

android retrofit retrofit2 rx-java2
1个回答
0
投票

您将需要执行此操作:

1)确定应用何时进入后台-可以使用ProcessLifecycleOwner类在一个地方完成此操作,请参阅sample implementation

2)App进入后台后,根据要取消一个或所有后台API调用,调用cancel()或cancelAll()。

由于您想在应用关闭时取消所有操作,所以我认为最好的方法是将协程与ViewModel范围一起使用以调用API操作。这样,一旦您的应用程序关闭,ViewModel范围将结束,因此关联的挂起操作将被自动取消,简洁明了的实现! Reference希望对您有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.