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. collections:内建模块,提供额外的集合类

    介绍 collections里面包含了很多除了内置类型之外的数据类型,我们使用它们有时可以很方便的完成一系列操作 ChainMap:搜索多个字典 from collections import Cha ...

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

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

  3. Task底层实现原理探秘

    .NET 4包含新名称空间System.Threading.Tasks,它 包含的类抽象出了线程功能, 在底层使用ThreadPool. 任务表示应完成的某个单元的工作. 这个单元的工作可以在单独的线 ...

  4. gitlab断电

    断电重启以后 会出现2019-06-26_05:47:42.71382 HINT: If you're sure there are no old server processes still run ...

  5. Missing artifact com.sun.jmx:jmxri:jar:1.2.1的解决方法

    maven项目添加log4j-1.2.15依赖出现Missing artifact com.sun.jmx:jmxri:jar:1.2.1错误 解决方法一:修改log4j.jar的版本为1.2.16或 ...

  6. kubernetes的搭建以及dashboard页面的启动

    ###查看kubernetes状态 ``` kubectl get pods -A #查看相关状态 kubectl get cs #查看k8s的ready状态 kubectl get node #查看 ...

  7. File上次文件找不到文件相对绝对路径

    我的问题是因为文件的相对绝对路径上面有中午字符,把上面的中午字符全改为英文或者数字加特殊字符形式都可以

  8. CF990G GCD Counting 点分治+容斥+暴力

    只想出来 $O(nlogn\times 160)$ 的复杂度,没想到还能过~ Code: #include <cstdio> #include <vector> #includ ...

  9. c++顺序表(数组)查找最大最小值

    #include <iostream> #define MAXSIZE 100 using namespace std; void find(int a[],int m) {int min ...

  10. 解决xshell无法连接virtualbox中的虚拟机(Ubuntu18.04)的问题

    遇到这个问题第一反应是是否安装相应的组件: sudo apt-get install openssh-server 开启防火墙端口 firewall-cmd --zone=/tcp --permane ...