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. Tomcat设置默认启动项目

    Tomcat设置默认启动项目 Tomcat设置默认启动项目,顾名思义,就是让可以在浏览器的地址栏中输入ip:8080,就能访问到我们的项目.具体操作如下:     1.打开tomcat的安装根目录,找 ...

  2. VM虚拟机下centos安装。

    centOS 7安装步骤: 1.选择新建虚拟机,稍后安装,linux选centos7 64位 2.位置改到存放虚拟机的文件夹 3.把硬盘空间改到40g,内存分到4g,1处理器2个核心 4 更改cd/d ...

  3. 关于一个指针的题目解析(a,&a,(int*)&a,(int*)((char*)&a + 4))

    #include <stdio.h> void main() { ] = {}; printf(]); printf("\n"); printf("a[1] ...

  4. PCB检查步骤

    1.原理图先每个模块都检查一边. 2.特别注意容易接错的信号线,比如RX,TX是否接反了. 3.检查容易出错的封装和新封装.比如三极管的管脚是否与实物对应.连接器等的封装是否忘记了镜像. 4.分层查看 ...

  5. XML刚学会,怎么又出来个YAML!

    XML(eXtensible Markup Language)可扩展标记语言,曾经是IT软件开发界,标记数据.定义数据的大哥大. 很多从事Spring的同学,没少花时间在写XML文件上吧? 不过随着时 ...

  6. java-面试题为什么redis这么快

    文章:为什么说Redis是单线程的以及Redis为什么这么快! 文章比较详细,有些细节可能需要注意. 1,比如CPU不是redis的瓶颈 2,随着连接数的增加,并发会降低等.

  7. 微信获取用户列表的json字符串解析

    今天学习微信遇到一个json的解析,但是因为自己的模型思维和思考能力很差一直困扰最后经过询问解决的问题,其实问题很简单总结起来就是json的解析: 注释:今天主要是讲怎样解析json的所以其他方法就只 ...

  8. python中的函数def和函数的参数

    '''函数: 1.减少代码重用性 2.易维护 3.可扩展性强 4.类型function 定义函数: def 函数变量名(): 函数的调用: 1.函数名加括号 2.函数如果没被调用,不会去执行函数内部的 ...

  9. CF #546 D.E

    D coun[i]表示[i]这个数右边有多少个数j能和他组成题中所给的二元组(i,j) 如果一个数的coun[i]=n-i-ans 那么说明他可以与最后一个交换 同时不计算贡献 因为它是向右走的 对左 ...

  10. java poi 生成多个sheet

    我的需求是:在一个表格中生成多个sheet,每个sheet的名称动态指定,每个sheet内的内容动态指定.生成的文件名动态指定. 工具类: package test; import java.io.O ...