做过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,欢迎大家一起交流学习~

更多相关文章

  1. SingleTask模式的Activity接受Intent注意事项
  2. Android(安卓)安全攻防
  3. 【Monkey】Android(安卓)Monkey autotest Tools
  4. Android应用程序开发(第三版)-课后习题解答
  5. 对Task和Activity在ANDROID中的解释
  6. Android应用程序——四大组件之Activity
  7. BlueStacks将Android程序运行在Windows上
  8. android component包含的内容
  9. 基础入门一

随机推荐

  1. 《android 1: 创建一个安卓项目》
  2. Android(安卓)图形系统及其应用
  3. android中怎么让 button组件居中显示
  4. TextView的android:maxHeight,android:min
  5. Android(安卓)xml资源文件中@、@android:
  6. TextView 文字加图片显示效果
  7. Android自定义radiobutton(文字靠左,选框
  8. Android中应用界面布局总结
  9. Android(安卓)Studio控件属性大全
  10. Android样式开发