`
zhouxiaoli521
  • 浏览: 562314 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 如何退出应用程序

阅读更多

1.int version = android.os.Build.VERSION.SDK_INT;

                            ActivityManager activityMgr = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);

                            if (version <= 7) {

                                   activityMgr.restartPackage(mContext.getPackageName());

                            } else {

                                   mContext.stopService(new Intent(mContext, MusicService.class));

//                                 activityMgr.killBackgroundProcesses(mContext.getPackageName());

                                   android.os.Process.killProcess(pid);

                            }

<!-- 关闭应用程序的权限 -->
<uses-permission android:name="android.permission.RESTART_PACKAGES" />

 

2.int pid = android.os.Process.myPid();

android.os.Process.killProcess(pid);   //杀死当前进程

3.this.finish()     thisà当前activity   //杀死当前进程

 

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

  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(),接下来手机显示的还是主窗口A,所以一起来看看Android开发网是如何实现的吧.

  1. Dalvik VM的本地方法

  android.os.Process.killProcess(android.os.Process.myPid())    //获取PID,目前获取自己的也只有该API,否则从/proc中自己的枚举其他进程吧,不过要说明的是,结束其他进程不一定有权限,不然就乱套了。
  System.exit(0);   //
常规javac#的标准退出法,返回值为0代表正常退出

 2. 任务管理器方法

   首先要说明该方法运行在Android 1.5 API Level3以上才可以,同时需要权限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);

 

http://www.cnblogs.com/stay/articles/1898891.html

分享到:
评论

相关推荐

    android关闭应用程序

    本文将深入探讨在不同Android版本下关闭应用程序的方法、权限需求以及最佳实践。 ### 关闭应用程序的方法 #### 1. 使用`ActivityManager` 通过`ActivityManager`,开发者可以重启或终止一个包中的所有进程。这在...

    Android中实现再按一次返回键退出应用程序

    在Android应用开发中,通常我们希望用户在按下返回键时能够退出应用程序,但为了提供更好的用户体验,Android系统并不推荐直接在用户第一次点击返回键时就退出。为了实现“再按一次返回键退出应用程序”的功能,我们...

    《Android应用程序开发》源代码

    在Android应用程序开发中,源代码是开发者实现功能、构建用户界面和管理应用程序逻辑的核心部分。这份"《Android应用程序开发》源代码"包含了官方未修改的示例,为初学者和经验丰富的开发者提供了一个深入理解...

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

    Android 退出应用程序的实现方法  android 退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())或是System.exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效。如果有A,B...

    Android应用程序开发

    【Android 应用程序开发】是一门涉及到在线编程技术的学科,主要在App Inventor 2平台上进行。在这个平台上,开发者可以构建具有图形用户界面(GUI)的Android应用程序,而无需深入理解底层的编程语言。以下是对...

    退出android应用程序Demo

    在Android开发中,退出应用程序是一个常见的需求,尤其是在某些特定的应用场景下,用户可能希望完全关闭应用,而不是简单地退回到后台。本示例"退出Android应用程序Demo"将讲解如何实现这个功能,涉及到的关键知识点...

    android 完全退出程序

    在退出应用时,可以使用一个特殊的Intent启动系统设置,让用户选择关闭应用。例如,可以创建一个BroadcastReceiver监听特定的Intent,并在接收到Intent时执行退出操作。 5. **后台服务与广播接收器** 如果应用包含...

    android获取应用程序的权限列表

    在Android系统中,每个应用程序都运行在一个独立的安全沙箱中,拥有特定的权限来访问系统资源和服务。了解和管理这些权限对于开发者和用户来说都至关重要。本文将详细讲解如何在Android系统中获取应用程序的权限列表...

    Android中一键退出应用程序

    在Android系统中,由于其设计原则,通常不鼓励开发者实现一键退出应用的功能,因为系统会自动管理应用程序的内存资源。然而,用户有时可能有需求快速退出应用,这就涉及到如何在Android程序中实现这一功能。本篇文章...

    Android应用程序UI架构 高清PTT

    在Android应用程序UI架构中,还有一个重要的服务WindowManagerService,它负责统一管理协调系统中的所有窗口,例如管理窗口的大小、位置、打开和关闭等。这个PPT讲Android应用程序的Surface机制,阐述Activity、...

    ANDROID 应用完全退出

    在Android平台上,应用程序的退出方式并不像桌面操作系统那样简单,因为Android系统会自动管理应用程序的生命周期,以便在需要时高效地使用系统资源。然而,有时开发者或用户可能希望应用程序能够完全退出,以防止...

    android 退出app 退出应用程序

    在退出时,遍历该list的activity,逐个关闭每一个activity,从而退出app 2 设置入口activity的启动模式android:launchMode="singleTask",重写onNewIntent方法, 在退出activity时,设置intent.setAction("exit_app...

    UncaughtException不让Android应用异常退出

    在Android开发中,确保应用程序的稳定性和可靠性是至关重要的。"UncaughtException不让Android应用异常退出"这个主题,就是关于如何处理程序中的未捕获异常,以防止应用突然崩溃,从而提升用户体验。在这个问题上,...

    android 将自己的应用改为系统应用

    Android 操作系统中,将自己的应用程序改为系统应用,可以使得应用程序具有更高的权限和更好的性能。本文将详细介绍如何将自己的应用程序改为系统应用的步骤。 第一步:准备工作 首先,需要将手机数据线插上,并将...

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

    Android 三维程序设计:基于OpenGL ES的图形应用程序设计,是一本专门为从事图形研究和设计的技术人员量身定做的教材。OpenGL ES(Open Graphics Library for Embedded Systems)是OpenGL的一个子集,专门为移动设备...

    Android完全退出应用demo

    在Android开发中,完全退出应用程序通常指的是关闭所有与应用相关的活动(Activities)和释放系统资源。这不仅是用户体验的一部分,也可能在某些情况下是必要的,比如在内存紧张时优化系统性能。以下是一个关于如何...

    完退出Android应用程序例子

    在Android操作系统中,退出应用程序并不是一个直接明了的过程,因为Android设计时考虑了资源管理和用户体验。通常情况下,用户点击返回键或应用切换器中的“关闭”按钮,应用并不会立即结束,而是进入后台运行状态。...

    Android-用漂亮的方式描述Android应用程序的持续时间

    在Android开发中,应用程序的持续时间通常指的是应用从启动到退出这一过程中的生命周期。这个生命周期包括了各种状态的切换,如活动(Activity)的创建、暂停、恢复和销毁,服务(Service)的启动与停止,以及后台...

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

    在Android应用开发中,完全退出程序意味着结束所有与应用程序相关的活动(Activity)并释放系统资源。用户通常期望点击“退出”按钮后,整个应用程序能够完全关闭,而不是仅仅停留在后台运行。下面我们将详细讨论...

Global site tag (gtag.js) - Google Analytics