package com.free.csdn.base;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import com.free.csdn.config.CacheManager;
import com.free.csdn.util.CrashHandler;
import com.tencent.bugly.crashreport.CrashReport;

import android.app.Activity;
import android.app.Application;

/**
* 应用Application类
*

*/

public class BaseApplication extends Application {

private static BaseApplication mInstance;
private List<Activity> mActivities = new ArrayList<Activity>();

// 单例模式中获取唯一的ExitApplication 实例
public static BaseApplication getInstance() {
if (null == mInstance) {
mInstance = new BaseApplication();
}
return mInstance;

}

@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
init();
}

private void init() {
// TODO Auto-generated method stub
initImageLoader();

// 使用腾讯BUGLY上传崩溃信息
initCrashReport();
}

/**
* 初始化ImageLoader
*/
private void initImageLoader() {

}

/**
* 初始化CrashHandler(保存在本地)
*/
@SuppressWarnings("unused")
private void initCrashHandler() {
CrashHandler crashHandler = CrashHandler.getInstance();
crashHandler.init(this);
Thread.currentThread().setUncaughtExceptionHandler(crashHandler);
}

/**
* 初始化崩溃上传(腾讯BUGLY)
*/
private void initCrashReport() {
CrashReport.initCrashReport(this, "900007710", false);
}

/**
* 重载系统获取缓存目录
*/
@Override
public File getCacheDir() {
// TODO Auto-generated method stub
return new File(CacheManager.getAppCachePath(this));
}

@Override
public File getDatabasePath(String name) {
// TODO Auto-generated method stub
return new File(CacheManager.getAppDatabasePath(this));
}

/**
* 把Activity加入历史堆栈
*
* @param activity
*/
public void addActivity(Activity activity) {
mActivities.add(activity);
}

/**
* 结束
*/
@Override
public void onTerminate() {
super.onTerminate();

for (Activity activity : mActivities) {
activity.finish();
}

System.exit(0);
}
}

此为调用这个类的方法

package com.free.csdn.base;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

import com.umeng.analytics.MobclickAgent;

/**
* FragmentActivity-基类
*
* @author tangqi
* @data 2015年8月10日上午12:07:57
*/

public class BaseFragmentActivity extends FragmentActivity {

@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
BaseApplication.getInstance().addActivity(this);
}

@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}

@Override
protected void onResume() {
super.onResume();
MobclickAgent.onResume(this);
}
}

android baseApplication 基类的更多相关文章

  1. android 在基类activity中注册BroadcastReceiver,子activity类实现响应

    android app 一般都会定义自己的BaseActivity, 如果各子Activity都需要接收广播但对广播的处理又不同时,可以考虑在BaseActivity中注册BroadcastRecei ...

  2. android Activity基类通用方法

    public class BaseActivity extends Activity { Resources res; // 通用资源缩写 @Override protected void onCre ...

  3. Android 自定义Activity基类与TitleBar

    我们在开发App的时候有时候碰到多个界面有一个共同点的时候,比如,都有相同的TitleBar,并且TitleBar可以设置显示的文字.TitleBar上的点击事件,如果给每一个Activity都写一遍 ...

  4. Android 开发技巧 - Android 6.0 以上权限大坑和权限检查基类封装

    简单介绍 关于运行时权限的说法,早在Google发布android 6.0的时候,大家也听得蛮多的.从用户的角度来讲,用户是受益方,更好的保护用户的意思,而对于开发者来说,无疑增加了工作量. 对于6. ...

  5. 【Android进阶】为什么要创建Activity基类以及Activity基类中一般有哪些方法

    现在也算是刚刚基本完成了自己的第一个商业项目,在开发的过程中,参考了不少人的代码风格,然而随着工作经验的积累,终于开始慢慢的了解到抽象思想在面向对象编程中的重要性,这一篇简单的介绍一下我的一点收获. ...

  6. 【Android先进】我们为什么要创建Activity基类Activity什么是一般的基类方法

    今天,它可以被视为只是基本完成了其首个商业项目,在发展过程中,风格,然而随着工作经验的积累.最终開始慢慢的了解到抽象思想在面向对象编程中的重要性,这一篇简单的介绍一下我的一点收获. 首先,在如今的项目 ...

  7. Android中的基类—抽取出来公共的方法

    在Android中,一般来说一个应用会存在几十个页面,并且一个应用一般也会使用一个特定的主题,其中的页面的风格也是一致的,并且页面中的动画效果.页面的切换效果等也应该保持同样的风格,那么就需要一个基类 ...

  8. (转)Android中的基类—抽取出来公共的方法

    在Android中,一般来说一个应用会存在几十个页面,并且一个应用一般也会使用一个特定的主题,其中的页面的风格也是一致的,并且页面中的动画效果.页面的切换效果等也应该保持同样的风格,那么就需要一个基类 ...

  9. Android 自己定义Activity基类

    我们在开发App的时候有时候碰到多个界面有一个共同点的时候.比方,都有同样的TitleBar.而且TitleBar能够设置显示的文字.TitleBar上的点击事件,假设给每个Activity都写一遍T ...

随机推荐

  1. Pexpect模块的安装

    Pexpect模块的安装 下载地址:https://pypi.python.org/pypi/pexpect/ 解压后在目录下运行:python ./setup.py install (必须是root ...

  2. 使用ICMP协议Ping网络主机

    #coding:utf-8 #!/usr/bin/env python import os import argparse import socket import struct import sel ...

  3. Edit Distance编辑距离(NM tag)- sam/bam格式解读进阶

    sam格式很精炼,几乎包含了比对的所有信息,我们平常用到的信息很少,但特殊情况下,我们会用到一些较为生僻的信息,关于这些信息sam官方文档的介绍比较精简,直接看估计很难看懂. 今天要介绍的是如何通过b ...

  4. php 执行外部命令exec() system() passthru()

    php 执行部命令exec() system() passthru() 通常用c写一个外部小程序,然后使用上述命令可以在php中调用 1. exec() string exec ( string $c ...

  5. html年月日下拉联动菜单 年月日三下拉框联动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. mysql设置编码

    1.修改数据库的编码   将数据库(test)的编码方式修改为utf8,如:   ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE ut ...

  7. Windows 8 IIS配置PHP运行环境

    在Windows 8 的IIS(8.0)中搭建PHP运行环境: 一:安装IIS服务器 1.进入控制面板>>程序和功能>>打开或关闭Windows 功能,找到Internet信息 ...

  8. mysql关于编码部分(乱码出现的原因和解决方法)

    在使用mysql客户端时,我们会经常出现一个这样一个问题,就是原先好好文字,怎么输入之后就出现乱码了呢? 出现这样的问题: 第一个原因: 可能是这是我们新安装的一个mysql,没有经过配置,第二个原因 ...

  9. Objective-C(一简介)

    Objective-C简介 通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言.它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统, ...

  10. PHP函数——parse_ini_file() 函数

    资料网址:http://www.w3school.com.cn/php/func_filesystem_parse_ini_file.asp 1.parse_ini_file() 函数解析一个配置文件 ...