`
superhj1987
  • 浏览: 203655 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

多activity中退出整个程序

阅读更多
问题:
多activity中退出整个程序,例如从A->B->C->D,这时我需要从D直接退出程序。
网上资料:
finish()和system(0)都只能退出单个activity。杀进程等的等方式都不行~~~

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

在D中使用下面的代码:
Intent intent = new Intent();
intent.setClass(D.this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  //注意本行的FLAG设置
startActivity(intent);
finish();//关掉自己

在A中加入代码:
@Override
protected void onNewIntent(Intent intent) {
// TODO Auto-generated method stub
super.onNewIntent(intent);
//退出
        if ((Intent.FLAG_ACTIVITY_CLEAR_TOP & intent.getFlags()) != 0) {
finish();
}
}

A的Manifest.xml配置成android:launchMode="singleTop"

原理总结:
一般A是程序的入口点,从D起一个A的activity,加入标识Intent.FLAG_ACTIVITY_CLEAR_TOP这个过程中会把栈中B,C,都清理掉。因为A是android:launchMode="singleTop"
不会调用oncreate(),而是响应onNewIntent()这时候判断Intent.FLAG_ACTIVITY_CLEAR_TOP,然后把A finish()掉。
栈中A,B,C,D全部被清理。所以整个程序退出了。
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Android 应用程序多Activity跳转之后退出整个程序

    NULL 博文链接:https://txlong-onz.iteye.com/blog/1021942

    Android编程之退出整个应用程序的方法

    本文实例讲述了Android编程之退出整个应用程序的方法。分享给大家供大家参考,具体如下: 我们在写android应用程序时,经常会遇到想退出当前Acitivity,或者直接退出应用程序.我之前的一般操作是按返回键,或者直接...

    android中Activity详解(生命周期、以各种方式启动Activity、状态保存,完全退出等)

    在一个应用程序中通常由多个Activity构成,都会在Manifestxml中指定一个主的Activity,如下设置 当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关操作。当启动其他的...

    Android 完全退出当前应用程序的四种方法

    Android程序有很多Activity,比如说主窗口A,调用了子窗口B,如果在B中直接finish(), 接下里显示的是A。在B中如何关闭整个Android应用程序呢?本人总结了几种比较简单的实现方法

    Android里实现退出主程序的提示代码

    当用户选择"确定",就退出当前的对话框。其中,有个很重要的函数,Activity.finish(),通过调用这个函数,退出当前运行的整个Android程序

    Android开发退出程序的方法汇总

    Android程序有很多Activity,比如说主窗口A,调用了子窗口B,子窗口B又调用子窗口C,back返回子窗口B后,在B中如何关闭整个Android应用程序呢? 下面软件开发网小编就给大家介绍android开发退出程序的几种方法。 1、...

    Android 退出程序的若干方法总结

    Android程序有很多Activity,比如说主窗口A,调用了子窗口B,如果在B中直接finish(), 接下里显示的是A。在B中如何关闭整个Android应用程序呢? 本人总结了几种比较简单的实现方法。1. Dalvik VM的本地方法 代码如下:...

    超有用的安卓学习材料9

    81、android多activity退出整个程序的一个实现 188 82、android anim 189 83、点击按钮变背景(任何有背景的控件及布局皆可) 200 84、布局中的属性 201 85、ImageView的属性android:scaleType,即ImageView....

    android 面试2

    如何安全退出已调用多个Activity的Application?  答:单个的Activity,调用finish、killProcess()、System.exit()方法退出  多个Activity  在2.1之前,可以使用ActivityManager的restartPackage方法。  它可以...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Activity Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,是一个负责与用户交互的组件 SSH 为 Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。...

    Android开发资料合集--续

    11、使程序完全退出 18 12、列出所有音乐文件 18 13、使用Intent ACTION 调用系统程序 19 显示网页: 19 显示地图: 19 路径规划: 19 拨打电话: 19 发送 SMS/MMS 20 发送 Email 20 为程序添加一个“分享” 21 打开多种...

    深入理解Android:卷I--详细书签版

     第1章介绍了阅读本书所需要做的一些准备工作,包括对Android整个系统架构的认识,以及Android开发环境和源码阅读环境的搭建等。注意,本书分析的源码是Android2.2。  第2章通过Android源码中的一处实例深入地...

Global site tag (gtag.js) - Google Analytics