Appication:代表这个应用程序。对应AndroidManifest.xml的节点写name,创建后需要在清单文件中进行配置。
单例,可以保存全局变量进行数据传递。APK加载内存中后的第一个实例化对象。onCreate方法的执行优先于activity和service和receiver的实例创建
(除了ContentProvider),可执行不耗时的初始化操作。service和activity可通过getApplication()获取到实例对象。
全局捕获异常
public class MobilesafeApplication extends Application {
//应用程序创建之前执行的第一个方法
//适合做应用程序的初始化操作
@Override
public void onCreate() {
//重写系统的异常处理器
super.onCreate();
Thread.currentThread().setUncaughtExceptionHandler(new MyExceptionHandler());
}
private class MyExceptionHandler implements UncaughtExceptionHandler{
//当发现了未捕获异常的时候调用的方法
@Override
public void uncaughtException(Thread thread, Throwable ex) {
System.out.println("发生了异常,但是被哥捕获了。。。");
try {
File file = new File(getFilesDir(), "error.log");
PrintStream p = new PrintStream(file);
//将log信息打印的文件中去
ex.printStackTrace(p);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//自杀的方法. 早死早超生
android.os.Process.killProcess(android.os.Process.myPid());
}
}
}