android自定义异常,并重启应用
在开发过程中,很多时候需要我们自己捕获异常,有的需要上传服务器,有的需要保存在本地,有的只需要在程序出现异常时进行调试,查找bug地方。在android中,使用UncaughtExceptionHandler来捕获异常。
UncaughtExceptionHandler是一个接口,需要我们来实现。代码如下
/** * Created by ycl on 2016/11/15. */ public class CrashHandler implements Thread.UncaughtExceptionHandler {private static Object lock = new Object(); private CrashHandler() {// Empty Constractor }private static CrashHandler mCrashHandler; private Context mContext; public static CrashHandler getInstance() {synchronized (lock) {if (mCrashHandler == null) {synchronized (lock) {if (mCrashHandler == null) {mCrashHandler = new CrashHandler(); }}}return mCrashHandler; }}/* 初始化 */ public void init(Context context) {this.mContext = context; Thread.setDefaultUncaughtExceptionHandler(this); }@Override public void uncaughtException(Thread thread, final Throwable ex) {System.out.println("uncaughtException:"+ex.getMessage()); Intent intent = new Intent(mContext, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(intent); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(0); }}
在uncaughtException,就是捕获到的异常信息,在这里我们可以保存异常信息到本地文件,也可以上传到服务器,重启当然也在这里,代码如上图所示,
在使用的时候,刚开始启动应用失败,后面才发现,启动的这个activity必须是启动界面activiy,也就是xml中设为启动界面的activity,而且launchermodel必须是默认的,不能是singleTop,singleTask,singleInstance,否则无法启动
实现UncaughtExceptionHandler之后,只需要在自定义application中初始化即可,
CrashHandler.getInstance().init(this);
android自定义异常,并重启应用相关推荐
- Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...
1.首先先来看一下修改前后的效果对比图 修改之后的图片 确认重启界面 具体的修改内容在下一篇中具体介绍. Android系统移植与调试之------->如何修改Android设备添加重启.飞行模 ...
- 为Android系统定制重启功能
按计划每周更新一篇技术博文,第二篇:<为Android系统定制重启功能> 一.Android系统重启的实现方式 1.广播方式 之前的博文介绍过这种方式<使用广播实现的Android关 ...
- android堆栈信息,android死锁致重启问题分析
摘自:http://www.2cto.com/kf/201207/142853.html 使用过Android的同学,尤其是用过山寨pad,应该对Android的重启问题印象深刻吧.Android由于 ...
- Android 系统自动重启Bug(高通平台)
点击打开链接 最近客户反馈了一个Bug,我们的系统用着用着会自动重启,尤其是在拨号的时候极容易死机或者进入下载模式.根据老大和高通的支持得到了一个解决方案. 在Android系统中,有这么一个文件夹: ...
- android 手机wifi重启,android – 如何通过重启来记住wifi配置和连接网络
我正在使用以下代码创建新的WiFi接入点并连接到它. 这段代码工作正常,我能够连接到wifi接入点,但我面临的问题是我正在创建的wifi连接没有记住通过设备的重新启动. WifiManager wif ...
- android 发送重启广播,Android实现关机重启的方法分享
实现系统重启的APK需要system的权限,在AndroidManifest.xml中增加android:sharedUserId="android.uid.system",再修改 ...
- android打开网址重启后也是这个网站,千万不要乱试!iPhone只要打开这个「网址」立即崩溃重启!...
Safari 是苹果产品指定使用的浏览器,提供快速的网页浏览服务,但是最强的浏览器始终也有弱点最近流传一个网站,只需要登入,就足以令Safari 彻底崩溃-- 这个名为crashsafari.com ...
- android服务自动重启,安卓service关闭后怎么自动重启
满意答案 首先申明service关闭有两种情况: 1.程序进入后台,系统可能会销毁应用,可以理解为android端监听推送消息的服务在启动后是一直在后台运行的,但是当内存不足时,或者第三方应用清理内存 ...
- android 应用自动重启,Android 应用崩溃后自动重启的方法
public class HKApplication extends Application { private List activityList = new ArrayList(); @Overr ...
最新文章
- PHP 使用 OSS上传文件
- 数组遍历VS对象遍历
- FastDFS部署及测试
- 《HTML5开发手册》——1.5 初学者“菜谱”:使用nav元素创建导航
- 使用Docker安装的Tuleap-aio.查看admin默认密码
- python定义变量字符串_Python学习笔记二(变量和字符串)
- python3环境变量和pip_Tool_linux环境安装python3和pip
- href 和 src 区别
- python自动化中使用unittestreport输出测试报告
- 人工智能的数学基础------- 矩阵迹与相似矩阵的本质
- More Grounded Image Captioning by Distilling Image-Text Matching Model
- clear linux
- WCF---关于无法使用以下搜索标准找到 X.509 证书的问题
- WPS在中文状态下输入的标点符号为英文的问题
- 吐血推荐珍藏的Visual Studio Code插件
- LLaMA模型系统解读
- secureCRT连接阿里云服务器
- 一些检索英文文献的网址(收藏)
- 怎样将语音转化为文字
- HEVC中一些英语简写
热门文章
- python数据结构之搜索
- Git 代码的审阅与提交
- import open3d:GLIBC_2.18 not found
- 伪原创视频改多少比例 短视频去水印小工具bet
- TL-WN725N V3无线网卡驱动移植与wireless工具wpa_supplicant-2.6
- 大数据技术之phoenix
- Amesim车辆仿真--开篇
- vscode+phpstudy连接使用mysql(解决phpstudy中mysql无法启动的问题)
- usb2.0移动硬盘数据传输速度因素
- tensorflow报错:AttributeError: 'module' object has no attribute 'get_or_create_global_step'