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

Android程序有很多Activity,在B中如何关闭整个Android应用程序

阅读更多
   

Android程序有很多Activity,比如说主窗口A,调用了子窗口B,在B中如何关闭整个Android应用程序呢?  

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

  1. Dalvik VM的本地方法

Java代码
android.os.Process.killProcess(android.os.Process.myPid())    //获取PID 
  android.os.Process.killProcess(android.os.Process.myPid())    //获取PID 

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

Java代码
System.exit(0);   //常规java、c#的标准退出法,返回值为0代表正常退出 
  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窗口

Java代码
Intent intent = new Intent();   
intent.setClass(Android123.this, CWJ.class);   
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  //注意本行的FLAG设置   
startActivity(intent); 
Intent intent = new Intent();
intent.setClass(Android123.this, CWJ.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  //注意本行的FLAG设置
startActivity(intent) 接下来在B窗口中需要退出时直接使用finish方法即可全部退出。

分享到:
评论

相关推荐

    Android 完全退出程序,关闭所有Activity

    1. 创建一个全局静态变量的Activity栈:在应用的基类或工具类中定义一个ArrayList来存储所有的Activity实例。每当一个新的Activity被创建时,将其添加到栈中。 ```java public class AppManager { private static ...

    88个Android应用程序

    这些示例涵盖了Android开发的很多核心概念和技术,学习它们能帮助开发者理解Android应用的构建原理,掌握实际开发中的技巧和最佳实践。每个样本都可以深入研究,学习其代码结构、功能实现和优化策略,这对于提升...

    android:scheme 通过uri跳转到APP应用指定Activity

    在Android开发中,`android:scheme` 是一个关键的概念,用于构建自定义URL协议,使得外部应用或系统可以通过特定的URI来启动我们的应用程序中的特定Activity。这个特性在很多场景下非常有用,比如分享链接、广告点击...

    Android应用源码之(Activity跳转与操作).zip

    在Android应用开发中,Activity是构成应用程序的基本组件之一,它代表了用户可见并可以与之交互的屏幕。Activity跳转与操作是Android开发者必须掌握的关键技能,涉及到Intent、生命周期、数据传递等多个方面。本资源...

    7个Android应用程序源代码

    标题提到的"7个Android应用程序源代码"提供了宝贵的实践资源,对于深入理解Android应用程序的工作原理、设计模式以及最佳实践非常有帮助。这些源代码可以作为学习和研究的实例,帮助开发者们在实际操作中提升自己的...

    android activity的一些特效

    在Android开发中,Activity是应用程序的基本构建块,它代表了一个用户可见并与其交互的屏幕。Activity可以展示用户界面,处理用户输入,并与系统服务或其它应用程序进行交互。本压缩包"Activityzhuanghuantexiao...

    Android应用框架原理与程序设计.rar

    在Android系统中,应用框架是开发者构建应用程序的基础,它提供了许多API和服务,使得开发者能够轻松实现各种功能。本资源主要涵盖了以下几个关键知识点: 1. **Android系统架构**:Android系统由Linux内核、库层、...

    Android基础系列的Activity

    在Android开发中,Activity是应用的核心组件之一,它充当了用户界面的主要载体,负责与用户交互。本系列将深入探讨Android基础中的Activity相关知识,帮助开发者理解和掌握如何创建、管理和控制Activity。 首先,...

    Android中Activity四种启动模式和taskAffinity属性详解-Rong

    在Android应用开发中,Activity是构成用户界面的基本组件,它代表了一个单一的屏幕界面。Activity之间的交互和跳转对于构建流畅的用户体验至关重要。为了管理Activity的生命周期和用户界面的流程,Android系统提供了...

    Android程序设计基础程序代码

    在Android程序设计基础中,我们主要探讨的是如何利用Java语言和Android SDK开发应用程序。这个压缩包文件"**MyAndroid**"很可能包含了多个示例项目,用于帮助初学者理解和实践Android应用的基本构造和功能。 首先,...

    Android-通过Url来进行activity的跳转此方案应用很广。也可用于Hybrid混合编程中

    在Android开发中,Url路由是一种常见且强大的技术,它允许我们通过URL字符串来启动特定的Activity,实现应用程序内部或跨应用程序的导航。这种技术在构建复杂应用时特别有用,例如在处理网页与原生应用之间的交互,...

    Android Activity设置相同的action进行判断源码.rar

    在Android应用开发中,Activity是应用程序的基本组件,用于与用户交互。它负责显示用户界面,并处理用户输入。在某些情况下,我们可能需要启动多个Activity,它们具有相同的intent action,这时就需要进行判断以确定...

    Android 三维程序设计-基于OpenGL ES的图形应用程序设计

    Android应用在Activity中启动和关闭,而Activity的生命周期事件,如onResume()和onPause(),与渲染上下文的创建和销毁密切相关。此外,开发OpenGL ES图形应用程序需要使用Android SDK提供的GLSurfaceView和...

    Android Studio实战 快速、高效地构建Android应用 源程序.zip

    3. **ch04** - 可能涵盖Activity和Intent的概念,这是Android应用的基本组成单元,讲解如何创建和管理Activity,以及如何通过Intent在不同组件间传递数据。 4. **ch06** - 可能涉及Android的UI组件和用户交互,比如...

    Android个人记账程序源码

    在这个记账应用中,这里应该有主要的Activity(如主界面和设置界面),可能还有用于处理记账逻辑和服务的类。 `res`目录包含了应用的所有资源,如布局文件(XML)、图像资源(PNG、JPEG)、字符串、颜色、尺寸等。...

    Android程序设计配套光盘

    在Android程序设计领域,开发人员需要掌握一系列的关键知识点来创建高效、用户友好的应用程序。"Android程序设计配套光盘"通常包含了一系列的学习资源,如源代码、教程文档、示例应用以及可能的教学视频,旨在帮助...

    android应用小程序———计算器源码

    在计算器应用中,你会看到一个或多个Java类,比如`MainActivity`,这是计算器的主程序,负责处理用户交互,计算结果,并更新UI。可能还会有其他辅助类,用于实现特定的计算逻辑。 `.settings`目录包含项目的特定...

    实验1 第一个Android程序.docx

    Eclipse 和 Android Studio 都可以用来开发 Android 应用程序,但是它们之间有很多不同。Eclipse 创建项目更简单,项目体积比较小,配置文件无需更新,多项目管理很方便。Android Studio 构建程序界面更方便,打印...

Global site tag (gtag.js) - Google Analytics