android 应用重启实现
来源:互联网 发布:阿里云测试培训 编辑:程序博客网 时间:2024/06/05 02:28
主要用到的类是:Thread.UncaughtExceptionHandler 想了解更多可以百度下这个。。。
现在看主要实现代码吧:
注意:需要在每个启动的activity oncreate中调用
MyApplication.add 方法,然后在onDestroy函数中调用removeActivity方法。备注: 这里用PendingIntent 定时重启应用要切记、
public class MyApplication extends android.app.Application { private static ArrayList<Activity> list = new ArrayList<Activity>(); protected static MyApplication instance; @Override public void onCreate() { super.onCreate(); instance = this; Thread.setDefaultUncaughtExceptionHandler(restartHandler); // 程序崩溃时触发线程 以下用来捕获程序崩溃异常 } // 创建服务用于捕获崩溃异常 private Thread.UncaughtExceptionHandler restartHandler = new Thread.UncaughtExceptionHandler() { public void uncaughtException(Thread thread, Throwable ex) { restartApp();//发生崩溃异常时,重启应用 } }; private void restartApp(){ try{ Thread.sleep(1500); }catch (InterruptedException e){ Log.e(TAG, "error : ", e); } Intent intent = new Intent(instance.getApplicationContext(), ConsoleActivity.class); PendingIntent restartIntent = PendingIntent.getActivity(instance.getApplicationContext(), 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK); //退出程序 AlarmManager mgr = (AlarmManager)instance.getSystemService(Context.ALARM_SERVICE); mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent); // 1秒钟后重启应用 instance.finishActivity(); } /** * Activity关闭时,删除Activity列表中的Activity对象*/ public static void removeActivity(Activity a){ list.remove(a); } /** * 向Activity列表中添加Activity对象*/ public static void addActivity(Activity a){ list.add(a); } /** * 关闭Activity列表中的所有Activity*/ public static void finishActivity(){ for (Activity activity : list) { if (null != activity) { activity.finish(); } } //杀死该应用进程 android.os.Process.killProcess(android.os.Process.myPid()); }}
阅读全文
0 0
- android应用实现重启
- android 应用重启实现
- android应用实现重启系统
- 如何实现Android重启应用程序代码 ?
- android应用实现重启系统
- android应用实现重启系统+签名
- android应用实现重启系统
- android应用实现重启系统
- cocos2dx android 实现应用重启
- android应用实现重启系统
- Android 应用实现系统重启reboot
- Android 应用实现系统重启reboot
- android 重启应用
- android重启应用
- Android应用重启
- android实现重启
- Android重启应用程序代码
- Android重启应用程序代码
- 编程随记:有整型数组a[],中间有连续递增的子数组,现在要求把原来数组中每个递增部分组成一个新的数组
- Cookie前后台使用乱码问题
- Hadoop、spark的一些基本使用笔记
- SVM算法
- mySql的连接useSSL=false
- android 应用重启实现
- pandas.DataFrame.append
- 员工部门mysql面试题
- 单片机与数字电路抗干扰措施
- java1.8 lambda表达式 函数式编程 闭包
- Canvas基础知识
- C++中的Compare()函数用法
- Android工程方法数超过65535,怎么破
- 赫夫曼编码