package com.loaderman.global;

import android.app.Application;
import android.os.Environment; import com.squareup.leakcanary.LeakCanary; import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter; /**
* 自定义application
* 使用前需要进行配置
* <application android:name=.MyApplication"
* >
* <p>
* 特性: 整个app的入口; 整个app只有一个application实例
* <p>
* 1. 全局初始化操作
* 2. 定义全局的方法, 声明全局变量
*/ public class MyApplication extends Application { //应用被创建
@Override
public void onCreate() {
super.onCreate(); System.out.println("应用被创建"); //捕获全局异常
//设置未捕获异常的处理器
Thread.setDefaultUncaughtExceptionHandler(new MyHandler()); } //定义全局的方法
public void doSomething() {
System.out.println("doSomething");
} class MyHandler implements Thread.UncaughtExceptionHandler { //如果系统出现未捕获异常, 就会走到此方法中, 然后进行全局处理
@Override
public void uncaughtException(Thread thread, Throwable ex) {
//Throwable: exception和error的父类
ex.printStackTrace();
System.out.println("发现一个未处理的异常, 但是被哥捕获了..."); //将错误日志输出到本地文件中--->自动上传到服务器
//第三方平台: 友盟统计
try {
PrintWriter writer = new PrintWriter(new FileOutputStream(Environment
.getExternalStorageDirectory().getAbsolutePath() + "/err11.log"));
ex.printStackTrace(writer);
writer.flush();
writer.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// ex.printStackTrace();
//及时退出app
//System.exit(0);//java中结束当前进程方法
//闪退
android.os.Process.killProcess(android.os.Process.myPid());//android中杀死当前进程的方法
}
}
}

在其他地方调用全局方法:

      //调用自定义application的方法
MyApplication app = (MyApplication) getApplication();
app.doSomething();

自定义application的全局捕获异常实现的更多相关文章

  1. 整合Freemarker视图层和整合jsp视图层和全局捕获异常

    SpringBoot静态资源访问 1.静态资源:访问 js / css /图片,传统web工程,webapps springboot 要求:静态资源存放在resource目录下(可以自定义文件存放) ...

  2. Android 自定义Application

    在android中 自定义Application 常用的作用是1 保存在程序运行中的全局变量 实例:public class GlobalApp extends Application{ privat ...

  3. 朝花夕拾-android 自定义application 管理activity的生命周期

    为了安全退出多个已创建的activity? 可以自定义application:myapplication. 增加一个list成员保存,一些关键的已创建的activity实例: private List ...

  4. springboot全局捕获异常

    捕获 捕获原理,使用AOP技术,采用异常通知. 1.捕获返回json格式 2.捕获返回页面 步骤: 1.@ControllerAdvice(pasePackage="") 注释异常 ...

  5. Spring Boot2.0之全局捕获异常

    全局捕获异常,很明显的错误404返回给客户,很不好呀.整个web请求项目全局捕获异常,比如空指针直接返回给客户啊,那多操蛋呀~ 看这几个常用的注解: @ExceptionHandler 表示拦截异常 ...

  6. springboot学习入门简易版六---springboot2.0整合全局捕获异常及log4j日志(12-13)

    使用Aop实现 1创建异常请求 在原有项目基础上,jspController中创建一个可能发生异常的请求: /** * 全局捕获异常测试 * @param i * @return */ @Reques ...

  7. 【记录】spring boot 全局捕获异常@ExceptionHandler与@Validated @RequestBody 配合使用

    @ExceptionHandler与@Validated @RequestBody 三者配合使用可以很好的做到入参校验,具体demo如下: 接口 import org.springframework. ...

  8. Application(全局对象,ViewState

    Application对象生存期和Web应用程序生存期一样长,生存期从Web应用程序网页被访问开始,HttpApplication类对象Application被自动创建,直到没有一个网页被访问时结束, ...

  9. spring boot+自定义 AOP 实现全局校验

    最近公司重构项目,重构为最热的微服务框架 spring boot, 重构的时候遇到几个可以统一处理的问题,也是项目中经常遇到,列如:统一校验参数,统一捕获异常... 仅凭代码 去控制参数的校验,有时候 ...

随机推荐

  1. CentOS 7自动以root身份登录GNOME桌面

    CentOS 7自动以root身份登录GNOME桌面 修改配置文件 /etc/gdm/custom.conf,在 [daemon] 下面添加一下两行 AutomaticLoginEnable=true ...

  2. mysql调优——数据包大小限制max_allowed_packet

     mysql根据配置文件会限制server接受的数据包大小. 有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置 show VARIABLES ...

  3. oracle下关于table的常用sql整理

    创建表,create TABLE table( 列名称1 数据类型1, 列名称2 数据类型2, 列名称3 数据类型3, ......); eg: create table TABLE_24751( i ...

  4. 十四,K8s集群网络flannel及canal策略

    目录 k8s网络CNI之flannel k8s网络通信模型 常见CNI插件(Container,Network,Interface) 插件通信一般的解决方案 网络插件的应用 Flannel插件 fla ...

  5. linux中centos6.9环境下的python3.6和pip的安装

    安装python3.6可能使用的依赖# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqli ...

  6. 关于layui表格渲染templet解析单元格的问题

    原文链接:https://blog.csdn.net/wyp_comeon/article/details/81735951关于表格解析自定义单元格的解析参数请先详细查看官方文档:http://www ...

  7. Python Module模块

    模块 https://docs.python.org/zh-cn/3/tutorial/modules.html 模块的概念被高级语言广泛使用. Python的定义 一个包括Python定义和语句的文 ...

  8. vue 中echart折线自适应

    前端时间做一个vue的项目,echart是按需引入的如下: // 引入 ECharts 主模块 import echarts from 'echarts/lib/echarts' // 引入折线图 i ...

  9. [Angular 8] Take away: Web Components with Angular Elements: Beyond the Basics

    This post is based on the NG-CONF talk, check the talk by yourself. 1. Dynamiclly add Angular Elemen ...

  10. 怎么理解vue中$listeners属性?

    首先,$listeners是什么? 假设有父组件Parent和子组件Child // Parent <template> ... <child v-on:event-one=&quo ...