文档章节

Android退出程序的几种方法

moonsnake777
 moonsnake777
发布于 2015/09/25 11:26
字数 420
阅读 196
收藏 0
  1. finish()

    针对单个Activity,会调用onDestroy方法,关闭当前Activity但并没有释放资源,如果Activity历史栈中不仅仅只包含当前的Activity,那么会回退到之前的Activity

  2. System.exit(0)

    针对单个Activity,不会调用onDestroy,关闭当前Activity并释放资源,如果Activity历史栈中不仅仅只包含当前的Activity,会报错

  3. android.os.Process.killProcess(android.os.Process.myPid());

    针对单个Activity,不会调用onDestroy,关闭当前Activity并释放资源,如果Activity历史栈中不仅仅只包含当前的Activity,会报错

  4. 任务管理器模式

    据说这种方式将会结束和程序包关联的一切进程(但是实测下来的效果并不理想)

    ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    if( android.os.Build.VERSION.SDK_INT < 8){
        am.restartPackage(getPackageName());
     //需要权限android.permission.RESTART_PACKAGES
    }else{
        am.killBackgroundProcesses(getPackageName());
     //需要权限android.permission.KILL_BACKGROUND_PROCESSES
    }

  5. Intent方式

    在从子页面跳转到主页面(需要执行退出程序的页面)时,进行intent设置来清空Activity历史栈,然后在主页面finish()即可

    Intent intent = new Intent();
    intent.setClass(ChildActivity.this, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //注意本行的FLAG设置
    startActivity(intent);

  6. Activity栈

    原理就是构建一个单独的Activity栈管理器(需要继承Application),在每个Activity创建的以后,加入其中,然后在退出程序时,遍历它关闭所有Activity,代码参考来源2... 

 

 

‍参考来源1:http://blog.sina.com.cn/s/blog_5da93c8f0101772p.html

 

‍参考来源2:http://blog.csdn.net/sunnyfans/article/details/7688092

 

© 著作权归作者所有

moonsnake777
粉丝 2
博文 32
码字总数 50045
作品 0
私信 提问
Android应用开发完全退出程序的通用方法!!!

们在开发一个android应用时,有可能有N个Activity,而在每个Activity里的菜单里有个"退出程序"菜单,这里就要完全退出程 序了,所以今天给大家分享的是Android应用开发完全退出程序的通用方法...

鉴客
2011/09/18
2.6K
0
android程序完全退出步骤

方法A: 1.5版本到2.1版本的退出方法是 ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); activityManager.restartPackage("包名"......

带梦想一7飞
2012/08/17
156
0
android 程序的几种退出方法

研究这个问题的时候是因为退出android程序的时候总是用finish(); ,我记得还有一种方法就是:System.exit(0); 代码中我正好想看看点击退出的时候,Activity的生命周期是怎么样的,于是在项目...

mutouzhang
2014/03/20
34
0
Android数据存储方式之SharedPreferences

在Android系统中提供了多种存储技术.通过这些存储技术可以将数据存储在各种存储介质上, Android 为数据存储提供了如下几种方式: 1、文件 2、 SharedPreferences( 参数 ) 3、SQLite数据库 ...

鉴客
2011/11/14
10.8K
2
Android程序的隐藏与退出

Android的程序无需刻意的去退出, 当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来销毁当前Activity,当此 Activity又被其它Activity启动起来的时候,会...

鉴客
2011/11/22
429
0

没有更多内容

加载失败,请刷新页面

加载更多

代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
8
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
12
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
16
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部