package com.pyj; import java.lang.Thread.UncaughtExceptionHandler; import java.util.ArrayList; import android.annotation.SuppressLint; import android.app.Activity; import android.app.ActivityManager; import android.app.Application; import android.os.Handler; import android.util.Log; import com.hupu.games.common.HupuLog; import com.pyj.common.DeviceInfo; public class BaseApplication extends Application implements UncaughtExceptionHandler { private ArrayList<Activity> actList; static String pakage; private Thread.UncaughtExceptionHandler mDefaultHandler; public BaseApplication() { DeviceInfo.init(this); actList = new ArrayList<Activity>(); mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(this); } public int getVerCode() { int verCode = -1; try { verCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode; Log.i("GBA", "vercode == " + verCode); } catch (Exception e) { e.printStackTrace(); } return verCode; } public String getVerName() { String verName = ""; try { verName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName; } catch (Exception e) { e.printStackTrace(); } return verName; } /** * 退出 * */ @SuppressLint("NewApi") public void quit() { // 清空网络请求队列 // client.cancelAll(); // 清空手机应用信息 int version = android.os.Build.VERSION.SDK_INT; clearAllAct(); if (version <= 7) { System.out.println(" version < 7"); ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); manager.restartPackage(getPackageName()); } else { ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); manager.killBackgroundProcesses(getPackageName()); } new Handler().postDelayed(new Runnable() { @Override public void run() { int pid = android.os.Process.myPid(); android.os.Process.killProcess(pid); } },200); // System.exit(0); } public void addActivitToStack(Activity act) { actList.add(act); } public void removeFromStack(Activity act) { actList.remove(act); } public void clearAllAct() { for (Activity act : actList) { if (!act.isFinishing()) act.finish(); } actList.clear(); } @Override public void uncaughtException(Thread thread, Throwable ex) { ex.printStackTrace(); Log.e("MyApp===", "" + ex.toString()); if (!treatErr(ex) && mDefaultHandler != null) mDefaultHandler.uncaughtException(thread, ex); else quit(); } public boolean treatErr(Throwable ex) { return false; } }