Android 退出应用程序的实现方法

Android 退出应用程序的实现方法

android 退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())或是System.exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效。如果有A,B,C三个Activity,而想在B 或C 中Activity 退出,调用上面的方法,往往会销毁当前的Activity 返回上一个Activity。当然也可以逐个返回上一个Activity,直到跳转到入口的Activity,最后退出应用程
序。但这样比较麻烦,而且逐个返回的体验并不友好。下面这种方法是写一个SysApplication 类,利用单例模式管理Activity,在每个在Activity 的onCreate()方法中调用ExitApplication.getInstance().addActivity(this)方法,在退出时调用ExitApplication.getInstance().exit()方法,就可以完全退出应用程序了。

import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.app.Application; 

public class SysApplication extends Application{
 private List<Activity> mList = new LinkedList<Activity>();
 private static SysApplication instance; 

 private SysApplication()
 {
 }
 public synchronized static SysApplication getInstance()
 {
 if(null == instance)
 {
  instance = new SysApplication();
 }
 return instance;
 }
 //add Activity
 public void addActivity(Activity activity)
 {
 mList.add(activity);
 } 

 public void exit()
 {
 try{
  for (Activity activity : mList)
  {
  if(activity != null)
   activity.finish();
  }
 }catch (Exception e){
  e.printStackTrace();
 }finally{
  System.exit(0);
 }
 }
 public void onLowMemory(){
 super.onLowMemory();
 System.gc();
 }
}

在每个activity 的onCreate中调用SysApplication.getInstance().addActivity(this);

然后在退出应用的时候调用SysApplication.getInstance().exit();

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • Android退出应用最优雅的方式(改进版)

    我们先来看看几种常见的退出方法(不优雅的方式) 一.容器式 建立一个全局容器,把所有的Activity存储起来,退出时循环遍历finish所有Activity import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; public class BaseActivity extends Activity { @Override protected

  • Android 安全退出应用程序的方法总结

    Android 安全退出应用程序的方法总结 正常关闭应用程序: 当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程. android.os.Process.killProcess(android.os.Process.myPid()) 通过这种方式不能将应用程序完全杀死,并且他不会把当前应用应用的Activity的task任务栈清空 第二种方法:终止当前正在运行的Java虚拟机,导致程序终止 System.exit

  • Android Back键点击两次退出应用详解及实现方法总结

    思路:Android中捕获用户按键是在onKeyDown方法中,只需要判断用户按键是否是KEYCODE_BACK即后退键即可,剩下的即为判断两次点击BACK键时间间隔问题了 第一种实现方式 package com.example.clickexittest; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import andr

  • Android实现长按back键退出应用程序的方法

    本文实例讲述了Android实现长按back键退出应用程序的方法.分享给大家供大家参考.具体分析如下: 最近在做一个Android上的应用,碰到一个问题就是如何实现长按back键退出应用程序.在网上查找了很多资料,发现几乎没有这样的实现,大部分在处理时是双击back键来退出应用程序.参考了一下双击back键退出应用程序的代码,网上主流的一种方法是下面这种方法,实现起来比较简单: @Override public boolean onKeyDown(int keyCode, KeyEvent ev

  • Android中双击返回键退出应用实例代码

    Android中双击返回键退出程序 1.在MyAppliction中(继承Application) //运用list来保存们每一个activity是关键 private List<Activity> mList = new LinkedList<Activity>(); //为了实现每次使用该类时不创建新的对象而创建的静态对象 private static MyApplication instance; //构造方法 public MyApplication() { } //实例化

  • android 完全退出应用程序实现代码

    android退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())或是System.exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效.如果有A,B,C三个Activity,而想在B或C中Activity退出,调用上面的方法,往往会销毁当前的Activity返回上一个Activity.当然也可以逐个返回上一个Activity,直到跳转到入口的Activity,最后退出应用程序.但

  • Android 完全退出应用程序的解决方法

    有一种需要,我们在菜单项中点击退出应用程序,应用程序就退出,不需要回到MainActivity 设计: 有两个应用界面MainActivity和BActivity,以及用于程序的通用类ExitUtil 步骤: 1.添加一个类,名为ExitUtil 复制代码 代码如下: public class ExitUtil { public static final int EXIT_APPLICATION = 0x0001; private Context mContext; public ExitUti

  • Android实现点击两次BACK键退出应用

    思路:Android中捕获用户按键是在onKeyDown方法中,只需要判断用户按键是否是KEYCODE_BACK即后退键即可,剩下的即为判断两次点击BACK键时间间隔问题了. 第一种实现方式: package com.example.clickexittest; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import an

  • Android完全退出应用程序的方法

    本文实例讲述了Android完全退出应用程序的方法.分享给大家供大家参考.具体如下: 在Android中,如果想退出Android程序,一般都是调用finish().System.exit(0).android.os.Process.killProcess(android.os.Process.myPid())等方法来实现退出程序功能,可是在实际开发中,并不能达到完全退出应用程序的效果,这是因为调用finish().System.exit(0).android.os.Process.killPr

  • Android 退出应用程序的实现方法

    Android 退出应用程序的实现方法 android 退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())或是System.exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效.如果有A,B,C三个Activity,而想在B 或C 中Activity 退出,调用上面的方法,往往会销毁当前的Activity 返回上一个Activity.当然也可以逐个返回上一个Activity,直到

  • 微信小程序开发之点击按钮退出小程序的实现方法

    微信小程序官方是没有提供退出的API的,但是在navigator这个组件中,是有退出这个功能的: 详情参考官方文档:navigator. 示例代码: <navigator open-type="exit" target="miniProgram">关闭小程序</navigator> 不过这个功能最低支持版本时 2.1.0 ,如果一定要使用这个功能,那么最好在小程序管理后台中设置最低基础库版本不低于2.1.0,如果对小程序支持的最低基础库低于2

  • Android获取应用程序大小的方法

    今天碰到个问题,想获取某个已安装的包的大小,没找到合适的方法.搜索了一下,发现PackageManager里面有个getPackageSizeInfo方法,可惜是hide的,而且它执行之后,会将结果回调给IPackageStatsObserver的onGetStatsCompleted方法.后来想直接计算/data/app和/system/app里面的apk大小,可是有时候会碰到权限问题,需要root才可以获取大小.        再后来,我想起系统的设置里面有一个应用程序管理,它里面列出了所有

  • Android修改自己程序字体的方法详解

    Android提供三种字体:"Sans","serif"和"monospace".1.在Android XML文件中设置字体可以采用android:typeface,例如android:typeface="monospace".在这里例子中我们在Activity中对android:text="Hello, World! 您好"分别进行了四种显示方式,依次为"Sans","ser

  • Android一次性退出多个Activity的方法

    本文实例讲述了Android一次性退出多个Activity的方法.分享给大家供大家参考,具体如下: 因为android的API中没有提供一次性退出的接口所以想要在多activity的程序里面一次性退出的话就要费点功夫了.我是在一个单例对象里面记录activity栈中activity的引用然后在需要退出时遍历一遍finish()掉就可以了.实现步骤如下: 1.创建一个单例对象 package com.exit; import java.lang.ref.SoftReference; import

随机推荐