Android中下拉通知栏,Activity会走哪些生命周期?

简介: 我们就可以做一个总结:当前Activity中,下拉通知栏,是不走任何生命周期的。

Activity,Android中的四大组件之一,任何一个应用必须包含一个或以上的Activity,它是所有功能的载体,是用户看得见摸得着的,权重毋庸置疑,也是面试中常见的基础面试之一,对于它的生命周期的轨迹,相信大家并不陌生,比如,创建一个Activity,销毁一个Activity,跳转到新的Activity,点击Home建或电源键等等,常见的我们都知道,那么,在当前Activity,下拉通知栏呢?会走哪些生命周期呢?


我们可以猜测一下,会走哪个生命周期?onPause?onStop?还是其它的,不妨我们组个测试?把几个常见的生命周期方法写出来,打印一下,如下:


publicclassMainActivityextendsAppCompatActivity {
privatestaticfinalStringTAG=MainActivity.class.getName();
@OverrideprotectedvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(TAG, "onCreate");
    }
@OverrideprotectedvoidonStart() {
super.onStart();
Log.i(TAG, "onStart");
    }
@OverrideprotectedvoidonStop() {
super.onStop();
Log.i(TAG, "onStop");
    }
@OverrideprotectedvoidonResume() {
super.onResume();
Log.i(TAG, "onResume");
    }
@OverrideprotectedvoidonPause() {
super.onPause();
Log.i(TAG, "onPause");
    }
@OverrideprotectedvoidonDestroy() {
super.onDestroy();
Log.i(TAG, "onDestroy");
    }
}

image.png


当运行后,下拉通知栏,可以发现,以上写的生命周期方法一个也没走,那么我们就可以做一个总结:当前Activity中,下拉通知栏,是不走任何生命周期的。


那么问题来了,问题有二:


1、为什么不走生命周期呢?

2、既然不走生命周期方法,开发中怎么监听到用户下拉通知栏呢?


针对第一个问题,我们来具体的来想一想,能引起Activity的生命周期的变化,需要什么条件?创建一个Activity,销毁一个Activity,隐藏一个Activity,跳转一个Activity等都可以,是不是发现,必须得有一个Activity参与,才能引起生命周期的变化,系统的通知栏是一个Activity吗?显然不是,它是一个用于通知的窗口,所以,既然不是Activity,当然也就不走任何生命周期了。


第二个问题,我们可以通过重写onWindowFocusChanged这个方法来监听通知栏的下拉,false为下拉。


image.png

相关文章
|
Android开发
Android面试题之Activity的启动模式和flag
Android Activity的四种启动模式:standard(默认,每次启动创建新实例),singleTop(栈顶复用,不走onCreate,调用onNewIntent),singleTask(栈内唯一,清除上方Activity)和singleInstance(单独栈内唯一)。启动模式在AndroidManifest.xml中配置,Intent Flags如FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_SINGLE_TOP可实现类似功能。了解这些对于处理Activity栈管理至关重要。
157 0
|
12月前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
210 6
|
12月前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
157 3
|
12月前
|
缓存 前端开发 Android开发
Android实战之如何截取Activity或者Fragment的内容?
本文首发于公众号“AntDream”,介绍了如何在Android中截取Activity或Fragment的屏幕内容并保存为图片。包括截取整个Activity、特定控件或区域的方法,以及处理包含RecyclerView的复杂情况。
153 3
|
12月前
|
Android开发 开发者 UED
深入理解安卓应用开发中的生命周期管理
本文旨在探讨安卓应用开发中生命周期管理的重要性,以及如何有效利用生命周期解决常见问题。通过分析安卓应用生命周期的不同阶段及其特点,提供实用的代码示例和调试技巧,帮助开发者优化应用性能,提升用户体验。
285 8
|
XML Android开发 数据格式
android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?
本文通过案例分析了在Android中当两个Activity都设置了`android.intent.category.LAUNCHER`类别时,会导致它们同时在应用启动器的"所有应用"页面显示为不同的启动入口。
368 2
android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?
|
12月前
|
Java Android开发 UED
深入探索安卓应用开发中的生命周期管理:从创建到销毁的全过程
在安卓应用开发中,理解并妥善管理应用及活动(Activity)的生命周期至关重要。本文将详细解析从应用创建到销毁的整个生命周期过程,以及如何通过高效管理提升应用性能与用户体验。
332 4
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder机制等等, 首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍:
227 4
|
12月前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
115 0
|
Android开发 UED 开发者
探索安卓应用的生命周期管理
【8月更文挑战第31天】在开发安卓应用时,理解并妥善处理应用的生命周期是至关重要的。本文将通过浅显易懂的方式,带你了解安卓应用的生命周期,并通过代码示例展示如何在实际应用中进行有效的生命周期管理。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和实用技巧。

热门文章

最新文章