Android---自定义异常退出并重启app的使用
2016-12-08 11:19
369 查看
自定义异常的退出,这里做的目的是如果自定义异常退出了,我们会得到什么,以及如何异常退出之后重启app,如果你有更好的想法可以一起交流。
注意:
在application中添加android:name = “.HKApplication”
public class HKApplication extends Application { private List<Activity> activityList = new ArrayList<Activity>(); @Override public void onCreate() { super.onCreate(); // 以下用来捕获程序崩溃异常 if (!Config.DEBUG) { Thread.setDefaultUncaughtExceptionHandler(restartHandler); // 程序崩溃时触发线程 } } // 创建服务用于捕获崩溃异常 private Thread.UncaughtExceptionHandler restartHandler = new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread, Throwable ex) { restartApp();//发生崩溃异常时,重启应用 } }; // activity管理:从列表中移除activity public 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()); } // activity管理:结束所有activity public void finishAllActivity() { for (Activity activity : activityList) { if (null != activity) { activity.finish(); } } } // 重启应用 @SuppressWarnings("WrongConstant") public void restartApp() { Intent intent = new Intent(); // 参数1:包名,参数2:程序入口的activity intent.setClassName(getPackageName(), "zhang.test.android_notification.MainActivity"); PendingIntent restartIntent = PendingIntent.getActivity( getApplicationContext(), 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK); AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent); // 1秒钟后重启应用 finishProgram(); // 自定义方法,关闭当前打开的所有avtivity } }
注意:
在application中添加android:name = “.HKApplication”
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" android:name=".HKApplication">
相关文章推荐
- Android学习-使用单例模式实现一键退出APP
- 如何解决放到android /system/app 下的应用程序无限重启弹出“异常终止”的问题
- Android使用自定义AlertDialog(退出提示框)
- Android使用自定义AlertDialog(退出提示框)
- Android使用自定义AlertDialog(退出提示框)
- Android学习-使用单例模式实现一键退出APP
- Android---快速拨话程序(涵盖appWidget、Tab、联系人、多线程、自定义ListView使用)
- Android使用自定义AlertDialog(退出提示框)
- Android使用自定义AlertDialog(退出提示框)
- 在Android中自定义捕获Application全局异常,可以替换掉系统的强制退出对话框(很有参考价值与实用价值)
- Android使用自定义AlertDialog(退出提示框)
- Android使用自定义AlertDialog(退出提示框)
- Android学习-使用单例模式实现一键退出APP
- 在Android中自定义捕获Application全局异常,可以替换掉系统的强制退出对话框
- Android---快速拨话程序(涵盖appWidget、Tab、联系人、多线程、自定义ListView使用)
- Android使用自定义AlertDialog(退出提示框)
- Android使用自定义AlertDialog(退出提示框)
- 在Android中自定义捕获Application全局异常,可以替换掉系统的强制退出对话框(很有参考价值与实用价值)
- android自定义广播实现app完全退出
- Android使用自定义AlertDialog(退出提示框)