`
shuai1234
  • 浏览: 995873 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

关闭android程序里所有的activity

 
阅读更多
 

 如果你喜欢开门见山的话,请直接跳到第三段,因为第二段描述的问题有些抽象,无视第二段是不影响理解的。

        前一阵子,我们公司的APP项目终于解决了在程序崩溃后或者跳转过程中黑屏后,退出程序仍然弹出大量打开过的activity,因此无法一次性退出的BUG。在退出后弹出这么多前打开的过的activity,都要用户一个个关闭,属于比较严重的BUG,无法正常使用。用过广播的方法的来finish所有的activity,也试过kill掉自己的进程实现一次性退出程序,但是效果不佳,主要是程序崩溃或者跳转黑屏后,这问题好像盖不住了,最后用了一个比较取巧的方法解决了,对正常退出和崩溃后退出都有效,主要目的还是要关闭所有的activity实现一次性退出。现在我把改良后的方法贴出来分享给大家交流一下。

        可以利用清理历史栈的方法,来巧妙关闭所有activity,首先用一个设置为不可见的activity A来启动程序,这个activity A的作用只是用来垫栈底,只有启动和退出程序才会用到这个activity,而你需要退出的时候,只需要跳转至这个activity A  ,并让A  finish自己就可以实现关闭所有的activity。

         Intent intent = new Intent();

 

        intent.setClass(B.this, A.class);     //B为你按退出按钮所在的activity

        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  //最关键是这句

         startActivity(intent);

 

 

        Intent.FLAG_ACTIVITY_CLEAR_TOP使得处于栈底的A发挥推土机的作用,从最底层把栈里所有的activity都清理掉,再在自己的oncreate方法加一句finish结束自己,即可实现退出。不放心的话,可以在A的ondestroy方法中加上system.exit(0) ,连跳转过程中的线程也可以终止的。

       至于如何初始化这个activity A ,决定程序是启动还是退出,随便弄一个static类型布尔变量控制一下就可以了。(*^__^*) 

分享到:
评论

相关推荐

    Android利用Intent启动和关闭Activity

    在Android应用程序开发中,Intent是连接各个组件(如Activity、Service等)的关键桥梁,主要用于启动和关闭Activity。Intent不仅能够启动一个新的Activity,还能在Activity之间传递数据,实现应用内部或应用间的交互...

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

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

    关闭所有当前运行程序所有的Activity

    ### 关闭所有当前运行程序所有的Activity #### 背景介绍 在Android应用开发中,有时需要实现一种功能,即一次性关闭应用内的所有Activity(活动),这种需求常见于需要清理资源、快速退出应用等场景。例如,当用户...

    Android源程序实现两个Activity之间的跳转

    ### Android源程序实现两个Activity之间的跳转 在Android开发中,`Activity`是构成应用程序的基本单元之一,负责处理用户交互并展示界面。本文将详细解释如何通过代码实现两个`Activity`之间的跳转,并分析给定的`...

    退出程序提示,退出程序后关闭所有activity

    在Android应用开发中,"退出程序提示,退出程序后关闭所有Activity"是一个常见的需求,它涉及到用户交互和应用生命周期管理。Activity是Android系统中的一个核心组件,代表了用户与应用进行交互的界面。当用户完成某...

    Android应用开发多个activity完全退出程序方法

    因此,我们需要一种策略来确保所有Activity都被正确关闭,以便完全退出程序。 在Android中,Activity的启动和管理是通过Activity栈(也称为任务栈)来实现的。每次启动一个新Activity,它都会被压入栈顶,而当用户...

    android关闭全部activity

    ### 关闭Android应用中的所有Activity 在Android应用开发过程中,有时候我们需要实现关闭或者退出应用程序的功能,这涉及到如何优雅地管理并关闭所有正在运行的Activity。本文将详细介绍如何通过注册广播接收器的...

    android退出所有Activity并且不弹出对话框实现

    在Android中,每个应用程序都有一个任务(Task)栈,Activity按照启动顺序被压入栈中,最后启动的Activity位于栈顶。当用户按下Back键时,系统会从栈顶取出并销毁当前Activity,依次回退到前一个Activity。而要退出...

    android activity之间跳转的示例程序

    在Android应用开发中,Activity是构成应用程序的基本组件,它负责用户界面的呈现和交互。Activity之间的跳转是Android应用中常见的操作,用于实现不同界面之间的切换。本示例程序是针对初学者设计的一个简单教学项目...

    android——退出程序的功能,关闭所有本程序界面

    总的来说,实现“退出程序的功能,关闭所有本程序界面”涉及到对Android Activity生命周期的理解、适当的代码实现以及遵循良好的应用程序设计原则。在编写这样的功能时,应谨慎处理,以免影响用户的使用习惯和系统的...

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

    2. **利用FLAG_ACTIVITY_CLEAR_TASK和FLAG_ACTIVITY_NEW_TASK**:这是一种更加符合Android设计原则的方法,通过设置Intent的标志,可以清除当前任务栈的所有Activity,达到退出程序的效果。 ```java public void ...

    退出Android程序时清除所有activity的实现方法

    总结来说,退出Android程序时清除所有Activity的关键在于创建一个Activity管理器,利用堆栈数据结构来追踪和管理Activity的生命周期,确保在适当的时候调用`finish()`方法关闭Activity。通过这种方法,不仅可以优雅...

    Android程序技术:Activity及log类简介.pptx

    LogCat是Android中的命令行工具,用于获取程序从启动到关闭的日志信息。 Log类所输出的日志内容分为五个级别,分别对应Log类中的Log.v()、Log.d()、Log.i()、Log.w()、Log.e()静态方法。Android4.0新增加Assert比较...

    Android中知道界面是哪个activity,一次结束所有Activity退出程序

    因此,除非必要,通常不建议强制结束所有Activity,而是遵循Android的正常操作流程,让用户通过返回键或系统的退出选项来关闭应用。在某些特殊情况下,如内存紧张或应用需要立即退出,可以考虑采用以上方法。

    全面解析Android应用开发中Activity类的用法

    在Android应用开发中,Activity是核心组件之一,它充当了用户界面与应用程序逻辑之间的桥梁。Activity类位于`android.app`包中,从`java.lang.Object`派生,并依次继承了`android.content.Context`、`android.app....

    安卓安装卸载相关-Android中应用程序Activity管理类用于Activity管理和应用程序退出。.zip

    总结起来,这个压缩包提供了关于Android应用程序Activity管理的知识,包括Activity的生命周期管理、Activity集合的维护、源码学习、安装卸载流程以及可能涉及的调试技巧。这些内容对于深入理解Android应用开发至关...

    关闭所有activity

    在Android应用开发中,"关闭所有activity"是一个常见的需求,特别是在用户希望退出应用程序时。这个过程并不像在桌面操作系统上简单地关闭一个窗口,而是需要通过一定的编程逻辑来实现。以下将详细介绍如何在Android...

    android activity的一些特效

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

    滑动关闭Activity完善动画

    首先,我们需要了解Activity的生命周期,它是Android应用程序中负责处理用户交互的主要组件。当用户离开一个Activity时,系统默认会调用`onPause()`、`onStop()`和`onDestroy()`方法来关闭Activity。然而,为了实现...

    Android-TopActivity展示当前app所处的最顶activity

    在Android应用开发中,了解和控制应用程序的Activity堆栈是非常重要的。"TopActivity"这个概念就是用来描述在当前运行的应用中位于最顶端的那个Activity。它代表着用户当前正在交互的界面,是用户可见并且可以直接...

Global site tag (gtag.js) - Google Analytics