Android完全退出程序退出所有Activity
做过Android开发的人都知道,应用程序点击返回键或者代码调用了Activity.finish()方法都无法完全退出,通过任务管理工具可以看到他们还在进程中。那我们应该如何完全退出应用程序呢?
下面将给大家分享,Android客户端如何完全退出应用程序的方法:
1.添加权限
<uses-permission android:name=”android.permission.RESTART_PACKAGES”/>
2.导入AppManager工具类
AppManager类是一个自定义的工具类,作用是将应用程序所有启动的Activity都添加到堆栈,最终退出应用程序时全部释放掉Activity。
AppManager类完整代码:
packagecom.sunny.aa;importjava.util.Stack;importandroid.app.Activity;importandroid.app.ActivityManager;importandroid.content.Context;/***应用程序Activity管理类*/publicclassAppManager{privatestaticStack<Activity>activityStack;privatestaticAppManagerinstance;privateAppManager(){}/***单例*/publicstaticAppManagergetAppManager(){if(instance==null){instance=newAppManager();}returninstance;}/***添加Activity到堆栈*/publicvoidaddActivity(Activityactivity){if(activityStack==null){activityStack=newStack<Activity>();}activityStack.add(activity);}/***获取当前Activity(堆栈中最后一个压入的)*/publicActivitycurrentActivity(){Activityactivity=activityStack.lastElement();returnactivity;}/***结束当前Activity(堆栈中最后一个压入的)*/publicvoidfinishActivity(){Activityactivity=activityStack.lastElement();if(activity!=null){activity.finish();activity=null;}}/***结束指定的Activity*/publicvoidfinishActivity(Activityactivity){if(activity!=null){activityStack.remove(activity);activity.finish();activity=null;}}/***结束指定类名的Activity*/publicvoidfinishActivity(Class<?>cls){for(Activityactivity:activityStack){if(activity.getClass().equals(cls)){finishActivity(activity);}}}/***结束所有Activity*/publicvoidfinishAllActivity(){for(inti=0,size=activityStack.size();i<size;i++){if(null!=activityStack.get(i)){activityStack.get(i).finish();}}activityStack.clear();}/***退出应用程序*/publicvoidAppExit(Contextcontext){try{finishAllActivity();ActivityManageractivityMgr=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);activityMgr.restartPackage(context.getPackageName());System.exit(0);}catch(Exceptione){}}}
3.使用AppManager工具类
Activity启动时,在的onCreate方法里面,将该Activity实例添加到AppManager的堆栈。
AppManager.getAppManager().addActivity(this);
需要退出程序时调用
AppManager.getAppManager().AppExit(this);
经过以上几步操作,即可完全退出程序退出所有Activity,欢迎大家一起交流学习~
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。