package cn.bingoogolapple.weibo; import android.app.Activity; import android.app.Application; import java.util.LinkedList; import cn.bingoogolapple.volley.ApiRespDelegate; import cn.bingoogolapple.volley.BGAVolley; import cn.bingoogolapple.volley.VolleyRespDelegate; import cn.bingoogolapple.weibo.util.Logger; import cn.bingoogolapple.weibo.util.ToastUtils; /** * 作者:王浩 邮件:bingoogolapple@gmail.com * 创建时间:15/7/3 上午12:31 * 描述: */ public class App extends Application { private static final String TAG = App.class.getSimpleName(); private static App sInstance; private long mLastPressBackKeyTime; private LinkedList<Activity> mActivities = new LinkedList<>(); @Override public void onCreate() { super.onCreate(); sInstance = this; initVolley(); } private void initVolley() { // 初始化Volley BGAVolley.init(this); // 初始化ApiResponseListener ApiRespDelegate.init("error_code", "error_description", "content", 21327, 0); // 设置为调试阶段打印日志 VolleyRespDelegate.setIsDebug(Logger.IS_DEVELOP_MODE); VolleyRespDelegate.setLoadingMessage(getString(R.string.loading_data_tip)); } public static App getInstance() { return sInstance; } public void addActivity(Activity activity) { mActivities.add(activity); } public void removeActivity(Activity activity) { mActivities.remove(activity); } /** * 双击后完全退出应用程序 */ public void exitWithDoubleClick() { if (System.currentTimeMillis() - mLastPressBackKeyTime <= 1500) { exit(); } else { mLastPressBackKeyTime = System.currentTimeMillis(); ToastUtils.show(R.string.exit_tip); } } /** * 退出应用程序 */ public void exit() { Activity activity; while (mActivities.size() != 0) { activity = mActivities.poll(); if (!activity.isFinishing()) { activity.finish(); } } android.os.Process.killProcess(android.os.Process.myPid()); System.gc(); System.exit(0); } /** * 获取当前版本名称 * * @return */ public String getCurrentVersionName() { try { return getPackageManager().getPackageInfo(getPackageName(), 0).versionName; } catch (Exception e) { // 利用系统api getPackageName()得到的包名,这个异常根本不可能发生 return null; } } }