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. 【转载】Linux系统,设置Oracle开机启动,待整理

    http://www.cnblogs.com/mophee/archive/2013/06/03/3115805.html

  2. 有关使用Maven常见问题总结(Eclipse中使用Maven、Maven项目部署到tomcat等问题)

    http://blog.csdn.net/sunitjy/article/details/42709311 ********************************************** ...

  3. Spring MVC 之类型转换(五)

    虽然SpringMVC可以自动绑定多种数据类型,但是有时候有些特殊的数据类型还是会在绑定时发生错误,需要我们自己书写类型转换完成绑定. SpringMVC中提供两种绑定方式:以时间转换为例. 1.属性 ...

  4. C语言 常用单词

    main 主要的      printf(print  format)格式输出     include  ,    return   ,if   ,else  ,switch   ,case 机箱:案 ...

  5. hiho1122_二分图匈牙利算法

    题目 给定一个图的N个节点和节点之间的M条边,数据保证该图可以构成一个二分图.求该二分图最大匹配. 题目链接:二分图最大匹配     首先通过染色法,将图的N个节点分成两个部分:然后通过匈牙利算法求二 ...

  6. 提高php开发效率的9大代码片段

    在网站开发中,我们都期望能高效快速的进行程序开发,如果有能直接使用的代码片段,提高开发效率,那将是极好的.php开发福利来了,今天小编就将为大家分享9大超实用的.可节省大量开发时间的php代码片段. ...

  7. 如何在大量jar包中搜索特定字符

    欢迎关注我的社交账号: 博客园地址: http://www.cnblogs.com/jiangxinnju/p/4781259.html GitHub地址: https://github.com/ji ...

  8. CSS:static/relative/absolute

    static - default and this is the FLOW. ------------------------------------------------------------- ...

  9. javascript常用函数(1):jquery操作select 基本操作

    $(this).children('option:selected').val();//这就是selected的值 $("#charCity").empty();//内容清空: j ...

  10. Java并发编程:阻塞队列(转载)

    Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable.Vector),也讨论了并发容器(ConcurrentHashMap.CopyOnWriteArrayList), ...