我有一个消耗API的应用程序。随着每一个要求,我送一个头与我的应用程序的版本,服务器会检查它,如果版本太低,它会抛出一个错误回来。我做到了这样,这样,如果将来我介绍的重大更改,然后我可以显示在应用一个不错的消息,而不仅仅是崩溃
现在,整个应用程序的任何请求,有可能返回此错误,所以我想要做的是对每一个请求,并密切取其活动是开放的全球赶上这一点,并打开一个新的说法了一些不错的消息,如“请到Play商店更新应用”。
是否有可能做这种事?
总括来说,我想要做的两件事情:
如果它的任何有用的,我使用RxJava2和改造
使用Thread.setDefaultUncaughtExceptionHandler
在Application
类赶上应用中的所有的异常,并检查应用程序崩溃,应该还是显示的更新消息。
本文Hide your crashes gracefully (and still report them)和许多其他libraries可以帮助你“全球catch异常Android中”。
为改变当前活动,目前已经有答案qazxsw POI。它基本上跟踪每一项活动。当你需要改变当前的活动,只是完成当前和开始一个新的。
这整个的做法似乎有点像矫枉过正对于你的情况,但我没有更好的主意...也许一个自定义RxJava异常处理程序捕获此异常?
您可以使用here捕捉异常,并就如何处理它的选择呈现给用户。
在项目的文件的build.gradle:
UCE Handler
在应用程序或模块的文件的build.gradle:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
在应用程序中使用类生成器模式初始化库:
dependencies {
compile 'com.github.jampez77:UCE-Handler:uce_handler:1.4.1'
}
然后确保你更新你的清单如下:
public class MyApplication extends Application {
@Override
public void onCreate() {
...
// Initialize UCE_Handler Library
new UCEHandler.Builder(this).build();
}
}