Android程序有很多Activity,比如说主窗口A,调用了子窗口B,在B中如何关闭整个Android应用程序呢? 这里给大家三种比较简单的方法实现。

首先要说明在B中直接使用finish(),接下来手机显示的还是主窗口A,所以一起来看看是如何实现的吧。

1. Dalvik VM的本地方法

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

  获取PID,目前获取自己的也只有该API,否则从/proc中自己的枚举其他进程吧,不过要说明的是,结束其他进程不一定有权限,不然就乱套了。

System.exit(0);

  常规java、c#的标准退出法,返回值为0代表正常退出

2. 任务管理器方法

  首先要说明该方法运行在Android 1.5 API Level为3以上才可以,同时需要权限android.permission.RESTART_PACKAGES,我们直接结束自己的package即可,直接使用ActivityManager类的restartPackage方法即可,参数为package name,该类通过getSystemService(Context.ACTIVITY_SERVICE)来实例化ActivityManager对象,这种方法系统提供的,但需要显示声明权限,所以使用中需要综合考虑。

3. 根据Activity的声明周期

  我们知道Android的窗口类提供了历史栈,我们可以通过stack的原理来巧妙的实现,这里我们在A窗口打开B窗口时在Intent中直接加入标志Intent.FLAG_ACTIVITY_CLEAR_TOP,这样开启B时将会清除该进程空间的所有Activity。

  在A窗口中使用下面的代码调用B窗口

  Intent intent = new Intent();

  intent.setClass(Android123.this, CWJ.class);

  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  //注意本行的FLAG设置

  startActivity(intent);

  接下来在B窗口中需要退出时直接使用finish方法即可全部退出。

End.

转载于:https://www.cnblogs.com/lianche/p/3503503.html

Android开发中完全退出程序的三种方法相关推荐

  1. Android开发中保存数据的四种方法方法

    本文来自:安卓航班网 在Android开发中我们会接触到四种数据存储方式,每种存储方式都各有不同:以下安卓航班分别列举了Android开发中的不同存储方式的特点. 一,Preferences Pref ...

  2. android全局计时_Android中使用定时器的三种方法

    本文实例为大家分享了Android中使用定时器的三种方法,供大家参考,具体内容如下 图示: 因为都比较简单,所以就直接贴代码(虑去再次点击停止的操作),有个全局的Handler负责接收消息更新UI 第 ...

  3. Android数据存储和读取的三种方法

    Android数据存储和读取的三种方法 一.文件存储 二.Context存储 三.SharedPreferences存储 一.文件存储 1.利用文件进行数据的存储 public static bool ...

  4. (OPC Client .NET 开发类库)网上很多网友都有提过,.NET开发OPC Client不外乎下面三种方法...

    1. 背景 OPC Data Access 规范是基于COM/DCOM定义的,因此大多数的OPC DA Server和client都是基于C++开发的,因为C++对COM/DCOM有最好的支持.现在, ...

  5. 在JavaScript中重复字符串的三种方法

    In this article, I'll explain how to solve freeCodeCamp's "Repeat a string repeat a string" ...

  6. 在JavaScript中反转字符串的三种方法

    This article is based on Free Code Camp Basic Algorithm Scripting "Reverse a String" 本文基于F ...

  7. mysql添加临时索引_mysql 中添加索引的三种方法

    在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...

  8. centos 卸载软件_一篇看懂!详解-Linux系统中安装软件的三种方法

    Linux系统中安装软件的三种方法 注:本文主要以CentOS为例介绍常用的安装方式,其他版本linux在文章底部 Linux系统中怎么安装软件,首先说一下应用程序与系统命令的区别: 1.文件位置 系 ...

  9. c++语言定义排序函数,关于C++中定义比较函数的三种方法小结

    C++编程优与Pascal的原因之一是C++中存在STL(标准模板库).STL存在很多有用的方法. C++模板库中的许多方法都需要相关参数有序,例如Sort().显然,如果你想对一个集合进行排序,你必 ...

最新文章

  1. 刘强东:这4类员工必须尽快清除!
  2. linux用head显示15字符,每天一个linux命令-head
  3. WebBIOS使用手册
  4. 大牛书单 | 迎金秋,与腾讯技术大咖共读好书
  5. faster rcnn学习之rpn、fast rcnn数据准备说明
  6. 我与微软的不解之缘 - 我的Insider Dev Tour 2019讲师之旅
  7. linux c之解决使用socket函数返回为0的问题
  8. Java数组实现五子棋功能
  9. 介绍一款基于SpringBoot开发OA开源产品
  10. Qt程序移植到其他电脑上无法运行的解决方法
  11. 感知机算法—推导收敛次数的上界
  12. 关于Nand Flash行地址和列地址的计算
  13. 【HCIE-RS】TAC诊断1
  14. Druid Monitor监控
  15. linux 拼图游戏,2020经典宝石拼图
  16. 渲染管线----通俗易懂向面试官介绍
  17. public和private的区别
  18. 保姆级Windows10关于jdk11的安装与配置以及产生的问题
  19. Deep Learning based Recommender System:A Survey and New Perspectives
  20. python批量裁剪图片_Python 图片批量裁剪

热门文章

  1. python抖音批量点赞_python抖音三百条,悠悠一笑乐逍遥
  2. jq苹果手机全屏下点击无效果_看剧、下视频、看小说,这一个app就可以~
  3. C语言定义code报错,C语言报错整理大全
  4. Java实现均摊_Java均摊复杂度和防止复杂度的震荡原理分析
  5. mysql 分区指定路径_[数据库]MySQL 指定各分区路径
  6. div中移除某个元素 js_[JS基础] 13 - 其他 JS 基础
  7. C++知识点2——指针、引用基础
  8. go打造以太坊合约测试框架
  9. 使用Android Studio搭建Android集成开发环境
  10. LeetCode OJ:Pascal's TriangleII(帕斯卡三角II)