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

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

public class MainActivity extends AppCompatActivity {    private static final String TAG = MainActivity.class.getName();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Log.i(TAG, "onCreate");    }    @Override    protected void onStart() {        super.onStart();        Log.i(TAG, "onStart");    }    @Override    protected void onStop() {        super.onStop();        Log.i(TAG, "onStop");    }    @Override    protected void onResume() {        super.onResume();        Log.i(TAG, "onResume");    }    @Override    protected void onPause() {        super.onPause();        Log.i(TAG, "onPause");    }    @Override    protected void onDestroy() {        super.onDestroy();        Log.i(TAG, "onDestroy");    }}

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

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

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

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

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

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

更多相关文章

  1. Android(安卓)Service详解(一) 初识Service
  2. android emulator: ERROR: unknown virtual device name:解决方
  3. Android子线程中更新UI的3种方法
  4. WebView Apps
  5. Android:LiveData postValue导致数据丢失问题,及其原因
  6. [sg] Android(安卓)6.0 添加对Home键的拦截
  7. [android]获取各应用的启动次数和运行时间
  8. 【Android】安卓AVD无法上网解决方案
  9. android事件拦截处理机制图解

随机推荐

  1. 为Dynamics CRM注释的图片附件做个预览功
  2. k8s关于支持的cgroup driver问题-systemd
  3. 记一次Kafka集群的故障恢复
  4. 字段明明存在,用Web API使用该字段进行查
  5. 吐血总结|史上最全的MySQL学习资料!!
  6. 微服务设计模式(下)
  7. 利用ELK分析Nginx日志生产实战(高清多图)
  8. 容器技术|Docker三剑客之docker-swarm
  9. nvidia-docker2 在 Kubernetes 上实践
  10. Apple M1芯片软件安装异常的解决方法