android baseApplication 基类
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 基类的更多相关文章
- android 在基类activity中注册BroadcastReceiver,子activity类实现响应
android app 一般都会定义自己的BaseActivity, 如果各子Activity都需要接收广播但对广播的处理又不同时,可以考虑在BaseActivity中注册BroadcastRecei ...
- android Activity基类通用方法
public class BaseActivity extends Activity { Resources res; // 通用资源缩写 @Override protected void onCre ...
- Android 自定义Activity基类与TitleBar
我们在开发App的时候有时候碰到多个界面有一个共同点的时候,比如,都有相同的TitleBar,并且TitleBar可以设置显示的文字.TitleBar上的点击事件,如果给每一个Activity都写一遍 ...
- Android 开发技巧 - Android 6.0 以上权限大坑和权限检查基类封装
简单介绍 关于运行时权限的说法,早在Google发布android 6.0的时候,大家也听得蛮多的.从用户的角度来讲,用户是受益方,更好的保护用户的意思,而对于开发者来说,无疑增加了工作量. 对于6. ...
- 【Android进阶】为什么要创建Activity基类以及Activity基类中一般有哪些方法
现在也算是刚刚基本完成了自己的第一个商业项目,在开发的过程中,参考了不少人的代码风格,然而随着工作经验的积累,终于开始慢慢的了解到抽象思想在面向对象编程中的重要性,这一篇简单的介绍一下我的一点收获. ...
- 【Android先进】我们为什么要创建Activity基类Activity什么是一般的基类方法
今天,它可以被视为只是基本完成了其首个商业项目,在发展过程中,风格,然而随着工作经验的积累.最终開始慢慢的了解到抽象思想在面向对象编程中的重要性,这一篇简单的介绍一下我的一点收获. 首先,在如今的项目 ...
- Android中的基类—抽取出来公共的方法
在Android中,一般来说一个应用会存在几十个页面,并且一个应用一般也会使用一个特定的主题,其中的页面的风格也是一致的,并且页面中的动画效果.页面的切换效果等也应该保持同样的风格,那么就需要一个基类 ...
- (转)Android中的基类—抽取出来公共的方法
在Android中,一般来说一个应用会存在几十个页面,并且一个应用一般也会使用一个特定的主题,其中的页面的风格也是一致的,并且页面中的动画效果.页面的切换效果等也应该保持同样的风格,那么就需要一个基类 ...
- Android 自己定义Activity基类
我们在开发App的时候有时候碰到多个界面有一个共同点的时候.比方,都有同样的TitleBar.而且TitleBar能够设置显示的文字.TitleBar上的点击事件,假设给每个Activity都写一遍T ...
随机推荐
- struct和class
先概述一下: 1.C# 是纯面向对象语言,struct 与 class 都是继承Object,都是对象.struct 是值类型.class 是引用类型. 2.struct是值类型,在Stack上分配地 ...
- C#_abstract的用法
/// <summary> /// 抽像类 /// </summary> public abstract class Hello { private string msg = ...
- JSON对象如何转化为字符串?
序列化 定义 指将 JavaScript 值转化为 JSON 字符串的过程. JSON.stringify() 能够将 JavaScript 值转换成 JSON 字符串.JSON.stringify( ...
- java 字符串(正则表达式)未完
正则表达式: 其实就是用于操作字符串的一个规则.(以某种方式描述字符串) 基础: 1.描述一个整数:\d(表示一位数字) \\d(\\ 表示要插入一个正则表达式)表示一位数字 \\\\ 插入一个普通 ...
- javaScript定义对象的方法
转自souhu新闻http://news.sohu.com/20110215/n279335637.shtml? javascript定义对象的几种简单方法 1.构造函数方式,全部属性及对象的方法都放 ...
- 使用EPPLUS操作EXcel
使用EPPLUS操作EXcel 时间 2014-11-06 19:28:01 姜糖水 原文 http://www.cnphp6.com/archives/58648 主题 Excel 1 下载Ep ...
- Ubuntu 修复windows启动项
打开终端输入命令sudo gedit /etc/default/grub修改GRUB_TIMEOUT="10"然后在终端中输入sudo update-grubupdate 命令会自 ...
- alpha发布(技术随笔)
昨天是班级里面每个小组要进行alpha演示,大家都很努力的去做自己的项目.我们nice!组没有演示自己的项目,只一点很惭愧,身为组员没有协助组长按时完成项目,这一点自己也感觉很抱歉,虽然每天感觉自己都 ...
- content.boundingRectWithSize计算出来的高度不准
计算出来的高度会少一行的高度,最后一行会显示不全.减掉padding会解决这个问题. let padding = self.reviewText.textContainer.lineFragm ...
- SharedPreferences详解
我们在开发软件的时候,常需要向用户提供软件参数设置功能,例如我们常用的微信,用户可以设置是否允许陌生人添加自己为好友. 对于软件配置参数的保存, 如果是在window下通常我们会采用ini文件进行保存 ...