android全局的异常捕获
来源:互联网 发布:生物多样性数据 编辑:程序博客网 时间:2024/05/22 06:13
android异常捕获已经很普遍,我们捕获发布前没有测试出的问题,发送到后台,以便于更好的优化APP。
public class CrashHandler implements Thread.UncaughtExceptionHandler { public static CrashHandler instance; private Context mContext; private CrashHandler() { } public static synchronized CrashHandler getInstance() { if (instance == null) { instance = new CrashHandler(); } return instance; } public CrashHandler build(Context context) { this.mContext = context; return instance; } @Override public void uncaughtException(Thread thread, Throwable ex) { ex.printStackTrace(); StringBuffer err = new StringBuffer(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); err.append("\tat "); err.append(format.format(new Date(System.currentTimeMillis()))); err.append("\tat "); err.append("app_version:" + getAppVersion()); err.append("\tat "); err.append(ex.toString()); err.append("<==>\n"); StackTraceElement[] stack = ex.getStackTrace(); if (stack != null) { for (int i = 0; i < stack.length; i++) { err.append(""); err.append("\tat "); err.append(stack[i].toString()); err.append("\n"); } } // 在此可以把用户手机的一些信息以及异常信息捕获并上传,也可以使用UMeng,UMeng的统计分析在这方面有api接口来调用, System.out.println(err.toString()); android.os.Process.killProcess(android.os.Process.myPid()); }}
在application中使用
public class CrashApplication extends Application { @Override public void onCreate() { super.onCreate(); CrashHandler crashHandler = CrashHandler.getInstance().build(getApplicationContext()); Thread.setDefaultUncaughtExceptionHandler(crashHandler); }}
在manifest中注册这个CrashApplication
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:name=".application.CrashApplication" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".view.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
友盟的错误分析
0 0
- android全局的异常捕获
- android 捕获全局异常
- android 捕获全局异常
- Android 捕获全局异常
- android 全局异常捕获
- android捕获全局异常
- android捕获全局异常
- android 全局异常 捕获
- Android捕获全局异常
- android 捕获全局异常
- Android全局捕获异常
- android 捕获全局异常
- Android全局异常捕获
- android 全局异常捕获
- Android 全局异常捕获
- Android 全局异常捕获
- Android全局异常捕获
- Android 捕获全局异常
- Android中moveTo、lineTo、quadTo、cubicTo、arcTo详解(实例)
- AndroidRuntime: java.lang.SecurityException: Permission Denial
- webservice调用国内飞机航班时刻表 WEB 服务
- iOS项目代码行数统计
- Nginx安装ssl模块和nginx_lua模块
- android全局的异常捕获
- hive与依赖环境的交互
- Java静态代理
- iOS 程序员必须收藏的资源大全
- 详解Dialog(三)——自定义对话框视图及参数传递
- iOS开发:自定义framework并打包
- dlopen、dlsym和dlclose的使用和举例
- redis需要设置过期时间吗
- 方差,协方差、标准差,与其意义