zheyiw 发表于 2013-1-30 04:10:44

android application

个人笔记:通用 application1、收集所有 avtivity用于彻底退出应用2、捕获崩溃异常,并重启应用package com.hk.shop.ex;import java.lang.Thread.UncaughtExceptionHandler;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.app.AlarmManager;import android.app.Application;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;public class HKApplication extends Application {PendingIntent restartIntent;private List<Activity> activityList = new ArrayList<Activity>();@Overridepublic void onCreate() {super.onCreate();// 以下用来捕获程序崩溃异常Intent intent = new Intent();// 参数1:包名,参数2:程序入口的activityintent.setClassName("com.hk.shop", "com.hk.shop.WelcomeActivity");restartIntent = PendingIntent.getActivity(getApplicationContext(), 0,intent, Intent.FLAG_ACTIVITY_NEW_TASK);Thread.setDefaultUncaughtExceptionHandler(restartHandler); // 程序崩溃时触发线程}// 创建服务用语捕获崩溃异常public UncaughtExceptionHandler restartHandler = new UncaughtExceptionHandler() {@Overridepublic void uncaughtException(Thread thread, Throwable ex) {AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000,restartIntent); // 1秒钟后重启应用finishProgram(); // 自定义方法,关闭当前打开的所有avtivity}};// activity管理:从列表中移除activitypublic void removeActivity(Activity activity) {activityList.remove(activity);}// activity管理:添加activity到列表public void addActivity(Activity activity) {activityList.add(activity);}// activity管理:结束所有activity,彻底关闭应用public void finishProgram() {for (Activity activity : activityList) {if (null != activity) {activity.finish();}}android.os.Process.killProcess(android.os.Process.myPid());}}
页: [1]
查看完整版本: android application