首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一次关闭所有Activity和连续点击两次返回键关闭程序的方法

最近有人问我怎么样一次关闭应用程序里所有的Activity的方法,有人说用队列存储的方式,关闭的时候,一个一个的取出再Finish掉。其实个人认为最好的方法就是通过广播的方式来进行。...{ /** * 关闭Activity的广播,放在自定义的基类中,让其他的Activity继承这个Activity就行 */ protected BroadcastReceiver finishAppReceiver...我相信这种思路大家都能看懂,现在我们再来讲一下连续点击两次返回键退出应用程序的方法。...{ exitApp(); } return true; } return super.onKeyDown(keyCode, event); } 发送广播退出程序 下边的这方法就是退出应用程序发送广播的方法...: /** * 退出应用程序的方法,发送退出程序的广播 */ private void exitApp() { Intent intent = new

951100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android基础_1 四大基本组件介绍与生命周期

    一、四大基本组件 Activity :      应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。     ...1. onCreate(Bundle savedInstanceState)       当Activity第一次被实例化的时候系统会调用,整个生命周期只调用1次这个方法。...被系统销毁杀掉时系统调用,(整个生命周期只调用1次)用来释放onCreate ()方法中创建的资源,如结束线程等 2.2.3     3个嵌套循环 1.Activity完整的生命周期:从第一次调用onCreate...的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次                 2、设置Activity的android:configChanges...()来停止服务时被系统调用,(整个生命周期只调用1次)用来释放onCreate()方法中创建的资源 void onDestroy() 通过startService()方法启动的服务       初始化结束后系统会调用该方法

    1.5K30

    安卓四大组件之Service-服务

    非绑定模式开启:执行onCreate方法后执行onStartCommand,在service被关闭销毁的时候调用onDestroy方法。...绑定模式开启:执行onCreate方法后执行onBind方法,在销毁的时候调用onUnbind和onDestroy方法 上面的两种serviece的生命周期是在相对单纯的情况下来说的,需要注意的是,...service的实例只会有一个,也就是说,如果我们当前想要开启的这个service已经存在,那么这一次的开启将不会再调用onCreate方法来实例化!...一个service可以被多个客户所绑定,只有当所有的绑定对象的onbind方法全部执行完了以后,这个service才有机会被销毁,打个比方说,当很多的客户都调用了unbind方法以后,那么如果其中一个客户却调用了...IntentService是Service的子类,比普通的Service增加了功能,Service只能运行在当前应用程序的主线程中,不能在其中处理耗时的操作。

    47930

    android横竖屏切换activity生命周期变化

    --> onResume--> 4、再按crtl+f12切换成竖屏时,发现打印了两次相同的log onSaveInstanceState--> onPause--> onStop--> onDestroy...的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次 2、设置Activity的android:configChanges="orientation..."时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次 3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期...,只会执行onConfigurationChanged方法 总结一下整个Activity的生命周期 补充一点,当前Activity产生事件弹出Toast和AlertDialog的时候Activity...的生命周期不会有改变 Activity运行时按下HOME键(跟被完全覆盖是一样的):onSaveInstanceState --> onPause --> onStop       onRestart

    1.3K80

    Activity的启动模式

    在Android程序中,应用程序通过活动栈来管理Activity,活动栈中有多少个Activity对象,我们在退出程序的时候就要按多少下返回键(即要将活动栈中的所有Activity出栈),但是这样的话难免会有活动栈中存在相同的...方法调用,并且MainActivity处于活动栈栈顶(这绝对是当然的),然后单击按钮两次,我们在Android模拟器中可以看到MainActivity又被创建了两次,而此时的LogCat中的信息: !...然后我们再点击一下“启动SecondActivity”按钮,我们会发现LogCat的信息并没有什么变化,此时也只需要点击两次BACK键就能退出程序。...结果显而易见,如我们所愿,单击“启动MainActivity”按钮之后,之前在MainActivity上面的两个SecondActivity被系统回收(调用onDestroy方法),自然MainActivity...singleTask:如果要启动的Activity对象存在活动栈,那么系统将不会创建新的Activity对象,而是会把活动栈中处于这个要启动的Activity对象上面的所有Activity对象出栈(被系统回收

    61110

    Android Service基础

    我们可以看到,即使我们单击了两次“开启服务”按钮, MyService 中的 onCreate 方法仍然没有被调用。...简单来说,这个方法在 Activity 和 Service 绑定的时候被调用,并且返回一个 IBinder 对象给 Activity, 之后 Activity 就可以通过这 IBinder 对象进行和绑定的服务之间的通信...(被系统回收)的时候调用, * 当服务于 Activity 正常解绑的时候,这个方法是不会被调用的 */ @Override public...我们可以看到,当我们同时点击了 “开启服务”按钮和“绑定服务”按钮的时候,我们必须要同时点击 “关闭服务”按钮和“解绑服务”按钮才能将服务摧毁,这样是因为这个服务被创建了两次吗,其实并不是,如果这个服务被创建了两次...,那么应该打印两次 onCreate Log 信息,但是并没有。

    55130

    Android 开发基础常识

    activity主要生命周期的方法说明:    onCreate(Bundle savedInstanceState):创建activity时调用。...onResume():activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用的)。    ...onStop():activity被停止并转为不可见阶段及后续的生命周期事件时调用。    onRestart():重新启动activity时调用。该活动仍在栈中,而不是启动新的活动。    ...onDestroy():activity被完全从系统内存中移除时调用,该方法被 16 .在Android中,怎么节省内存的使用,怎么主动回收内存?   ...1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,     切横屏时会执行一次,切竖屏时会执行两次   2、设置Activity的android:

    9710

    Android实现点击两次返回退出APP

    接下来我们来实现点击两次退出APP 2、实现点击两次退出APP 网上实现的代码主要是两种方式: (1)、利用Handler (2)、利用系统秒数 这两个方法的核心其实都是利用时间差,如果在限定的时间内点击了两次返回键就退出程序...重写了父类的onKeyDown()方法,每点击一次返回按钮就会调用这个方法,给 isExit 的值增加1,调用 exit() 判断是否要退出程序。...第一次点击时 isExit 的值增加1,其值为1,调用 exit() ,弹出提示框提醒用户再点击一次退出程序,并调用刚才创建的 handler 发送修改 isExit 为0,这里设置其延时2秒发送,如果...2秒之内用户再次点击,又会给 isExit 的值增加1,这是调用 exit() 方法会直接调用 super.onBackPressed() 方法直接退出程序,显然上面发送的消息也到不了 handler...如果2秒内用户没有再次点击返回键,isExit的值再次置为0,用户则需要再次点击两次返回键方能退出程序。

    1.5K30

    【Android】Service介绍和生命周期

    介绍 Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件。...Android中的服务Service,和Activity不同的是不能与用户交互的,不能自己启动,系统的后台运行,当程序退出时,我们没有显示的调用停止服务,那么这个Service就没有结束,它仍然在后台运行...服务可以被开启多次,每次开启都调用onStartCommand 2. 服务只能被停止一 3....服务只能被解绑一次,多次解绑会抛出异常 3. activity和绑定的Service是同生共死 4....3.不需要主动调用stopSelft()来结束服务。因为,在所有的intent被处理完后,系统会自动关闭服务。 4.默认实现的onBind()返回null 5.

    31810

    Activity三问—猫眼真题

    B启动模式为singleInstance不变,A→B→C的时候点击两次返回,生命周期如何调用。 屏幕旋转时Activity的生命周期,如何防止Activity重建。 介绍几种启动模式。...singleInstance,有点单例的感觉,就是所启动的Activity会单独放在一个任务栈里,并且后续所有启动该Activity都会直接用这个实例,同样被重复调用的时候会调用并回调onNewIntent...B启动模式为singleInstance不变,A→B→C的时候点击两次返回,生命周期如何调用。...1)A→B→C→B,B启动模式为singleTask 启动A的过程,生命周期调用是 (A)onCreate→(A)onStart→(A)onResume 再启动B的过程,生命周期调用是 (A)onPause...,点击两次返回键 如果B为singleInstance,A→B→C的过程,生命周期还是同前面一样正常调用。

    55330

    Android程序员:“如何详解 Activity 的生命周期?”问完被怼了...

    最近在知乎上看到一个很基础的问题: 如何详解 Activity 的生命周期? 提问者的情况: 本身在知乎上问这么基础的问题再加上说我们国内的开发水平比美国低,也难怪被所有人喷了。。。...(三) 横竖屏切换 在未做任何处理的情况,旋转后,Activity生命周期重新运行:onPause, onStop, onDestroy, onCreate, onStart, onRestoreInstanceState...通过打log来验证,留给有兴趣的不妨试试,finish()方法在onCreate,onStart,onResume等不同地方调用finish()后,Activity走的生命周期也是不同的。...2.基本结构 一个应用程序通常由多个Activity组成,那么在应用程序中肯定需要一个容器来盛放这些Activity,必要时通过该容器找到对应的Activity,并进行相关操作。...在AMS中Activity状态变化时,将通过该联系找到客服端的Activity,从而将消息或者动作传递应用程序面对的接口:xxxActivity。

    91400

    Android面试常问基础知识点(附详细解答)

    在新Activity启动前被系统调用保存现有的Activity中的持久数据、停止动画等。...onStop(): 当Activity被新的Activity覆盖不可见时被系统调用 onDestory(): 当Activity被系统销毁杀掉或是由于内存不足时调用 2)Service a) onBind...启动的:onCreate->onStartCommand->onDestory(start多次,onCreate只会被调用一次,onStart会调用多次,该service会在后台运行,直至被调用stopService...或是stopSelf) c) 又被启动又被绑定的服务,不管如何调用onCreate()只被调用一次,startService调用多少次,onStart就会被调用多少次,而unbindService不会停止服务...在当前Activity被销毁前调用onSaveInstanceState(onPause和onStop之间保存),重新创建Activity后会在onCreate后调用onRestoreInstanceState

    2.7K31

    Android学习笔记(四)深入探讨Activity

    在应用程序中至少包含一个用来处理应用程序的主UI功能的主界面屏幕。这个主界面一般由多个Fragment组成,并由一组次要Activity支持。...(注册方法及原因请参考:Android高级编程笔记(二)Manifest文件节点详解)   需要注意的是,想让一个Activity可以被应用程序启动器使用,它必须包含一个监听MAIN动作和LAUNCHER...> 二、Activity的生存期   正确理解Activity的生存期,可以更好的对应用程序管理资源,从而让应用程序更加连贯流畅。...每一次转化都会触发以上方法处理程序。 · 完整生存期:对onCreate()的第一次调用和对onDestroy()的最后一次调用之间的时间范围。...onRestart在除了对onStart方法的第一次调用之外的所有方法之前被立即调用。可以用它完程只有当Activity在它的完整生存期之内重启时才能完成的特殊处理。

    1.1K100

    小白也能看懂的插件化DroidPlugin原理(三)-- 如何拦截startActivity方法

    的 onCreate() 方法中需要调用一下 doActivityStartHook 即可完成对 Activity.startActivity 的 hook。...到此为止我们已经 hook 了 Activity 的 startActivity 方法,非常简单,代码量也很少,但我们也很轻易的发现这种方法需要在每一个 Activity 的 onCreate 方法里面调用一次...方法后确实将 Activity 的 mInstrumentation 变量换成了我们自己的 EvilInstrumentation,但程序执行到 onCreate() 方法后就会发现这时候 mInstrumentation...而且 doContextStartHook() 方法只在程序开始的时候调用一次即可,后面在程序其他的 Activity 中调用 Context.startActivity() 时此拦截工作均可生效,这是因为...是的,Activity.startActivity 被 hook 的信息输出了两次!为什么?

    1.1K60

    精选Android中高级高频面试题:四大组件及Fragment原理

    对象同时传参给onRestore(简称)和onCreate(),因此可以通过这两个方法判断Activity是否被重建,调用在onStart之后; 推荐文章:官方文档 4、说下 Activity的四种启动模式...参考回答: 不设置Activity的android:configChanges时,切屏会销毁当前Activity,然后重新加载调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次; onPause(...创建完毕后, 开始调⽤ Activity 的 onCreate() ⽅法,⾄此,Activity 被成功启动。...():当与Fragment相关联的Activity完成onCreate()之后调用; onDestroyView():在Fragment中的布局被移除时调用; onDetach():当Fragment和...与文件存储、SharedPreferences存储、SQLite数据库存储这几种数据存储方法不同的是,后者保存下的数据只能被该应用程序使用,而前者可以让不同应用程序之间进行数据共享,它还可以选择只对哪一部分数据进行共享

    2K00

    android程序崩溃后重启

    有时候由于测试不充分或者程序潜在的问题而导致程序异常崩溃,这个是令人无法接受的,在android中怎样捕获程序的异常崩溃,然后进行一些必要的处理或重新启动 应用这个问题困恼了我很久,今天终于解决了该问题...通过实现此接口,能够处理线程被一个无法捕捉的异常所终止的情况。...为程序的默认处理器           UnCeHandler catchExcep = new UnCeHandler(this);           Thread.setDefaultUncaughtExceptionHandler...我之前困扰的地方:搜了很多资料,杀死异常进程,重新启动应用,网上应用都是通过Application对象调用startActivity(intent),然后杀死异常进程。...但是我怎样试都不成功, 进程是杀死了,但是应用却没启动起来,如果不将异常进程杀死,那么关闭应用时就得关闭两次,显然不能够接受。

    2.2K70

    常见Android面试题及答案(详细整理)

    onCreate(): 创建Activity时调用,设置在该方法中,还以Bundle的形式提供对以前存储的任何状态的访问。 onStart(): Activity变为在屏幕上对用户可见时调用。...onStop(): Activity被停止并转为不可见阶段及后续的生命周期事件时调用。 onRestart(): Activity被重新启动时调用。该活动仍然在栈中,而不是启动新的Activity。...onStop()//Activity不再可见时调用。 onDestroy()//Activity销毁栈时被调用的最后一个方法。 3. 横竖屏切换时候Activity的生命周期。...答: 1、不设置Activity的android: configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次。...Android.os.Handle是能发送和处理消息的,你需要在Activity中发出更新UI的消息,然后再你的Handler(可以使用匿名内部类)中处理消息(因为匿名内部类可以访问父类变量,你可以直接调用

    3K11

    玩转EventBus,详解其使用

    主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息。简化了应用程序内各组件间、组件与后台线程间的通信。..., 根据post函数参数的类型,会自动调用订阅相应类型事件的函数。...关于ThreadMode 前面说了,Subscriber的函数只能是那4个,因为每个事件订阅函数都是和一个ThreadMode相关联的,ThreadMode指定了会调用的函数。...super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); btn = (...使用EventBus应该注意以下几点: 同一个onEvent函数不能被注册两次,所以不能在一个类中注册同时还在父类中注册。 消息的接收是根据参数中的类名来决定执行哪一个接收处理方法的。

    59760

    037android初级篇之Activity的几个重要函数

    该方法在View类中的定义,并且所有的View子类全部重写了该方法,应用程序可以通过该方法处理手机屏幕的触摸事件。该方法的签名如下所示。...如果android系统由于内存不足把已存在Activity释放掉了,那么再次调用的时候会重新启动Activity即执行onCreate()---->onStart()---->onResume()等。...onRestoreInstanceState调用时机,activity A“确实”被系统销毁了,而如果仅仅是停留在有这种可能性的情况下,则该方法不会被调用。...,onSaveInstanceState被调用时,其调用发生在Activity生命周期中具体的位置。...onSaveInstanceState常常用于存储应用程序中当前Activity中重要的状态数据,以免Activity被系统意外杀掉的情况下当用户再次回来时不能找到之前的状态。

    75420
    领券