热点新闻
Android-Jetpack-ProcessLifecycIeOwner监听App的生命周期
2023-07-12 00:54  浏览:3467  搜索引擎搜索“微商筹货网”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在微商筹货网看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布



图片来源网络

在日常Android开发当中,我们肯定会遇到App的生命周期的需求。在lifecycle的扩展库当中有提供一个ProcessLifecycIeOwner帮我们实现对App的生命感知,这篇博客就来分享ProcessLifecycIeOwner的知识,希望对看文章的小伙伴有所启发。

导入依赖

这个类需要我们导入一个扩展库,依赖语句如下所示:

implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'

使用代码示例

1.创建一个AppObserver实现LifecycleObserver接口:

import androidx.lifecycle.LifecycleObserver class AppObserver : LifecycleObserver{ @onLifecycleEvent(Lifecycle.Event.ON_CREATE) fun onCreate(){ Log.d(TAG,">>>>>>>>>>>>>>>>> onCreate") } @onLifecycleEvent(Lifecycle.Event.ON_START) fun onStart(){ Log.d(TAG,">>>>>>>>>>>>>>>>> onStart") } @onLifecycleEvent(Lifecycle.Event.ON_RESUME) fun onResume(){ Log.d(TAG,">>>>>>>>>>>>>>>>> onResume") } @onLifecycleEvent(Lifecycle.Event.ON_PAUSE) fun onPause(){ Log.d(TAG,">>>>>>>>>>>>>>>>> onPause") } @onLifecycleEvent(Lifecycle.Event.ON_STOP) fun onStop(){ Log.d(TAG,">>>>>>>>>>>>>>>>> onStop") } @onLifecycleEvent(Lifecycle.Event.ON_DESTROY) fun onDestroy(){ Log.d(TAG,">>>>>>>>>>>>>>>>> onStop") } companion object { const val TAG = "TAG" } }

2.在自己的Application当中绑定:

import android.app.Application import androidx.lifecycle.ProcessLifecycleOwner class MyApplication : Application(){ override fun onCreate() { super.onCreate() ProcessLifecycleOwner.get().lifecycle.addObserver(AppObserver()) } }

调用就是这样的简单,刚兴趣的小伙伴可以在项目当中用起来。目前在项目当中可以获取到App生命周期大概有以下几个:

  • Lifecycle.Event.ON_CREATE;
  • Lifecycle.Event.ON_START;
  • Lifecycle.Event.ON_RESUME;
  • Lifecycle.Event.ON_PAUSE;
  • Lifecycle.Event.ON_STOP;

在使用过程当中需要注意有以下几点:

  • Lifecycle.Event.ON_CREATE,只会调用一次。、
  • Lifecycle.Event.ON_DESTROY,不会有响应的,别写业务代码,要不然就成为BUG了。
  • 当我们直接通过Home键或者其他方式退到后台的情况,会依次调用Lifecycle.Event.ON_PAUSELifecycle.Event.ON_STOP,然后会出现延迟的情况。

完整的AppObserver模板(可复制修改)

import android.util.Log import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleObserver import androidx.lifecycle.onLifecycleEvent class AppObserver : LifecycleObserver{ @onLifecycleEvent(Lifecycle.Event.ON_CREATE) fun onCreate(){ Log.d(TAG,">>>>>>>>>>>>>>>>> onCreate") } @onLifecycleEvent(Lifecycle.Event.ON_START) fun onStart(){ Log.d(TAG,">>>>>>>>>>>>>>>>> onStart") } @onLifecycleEvent(Lifecycle.Event.ON_RESUME) fun onResume(){ Log.d(TAG,">>>>>>>>>>>>>>>>> onResume") } @onLifecycleEvent(Lifecycle.Event.ON_PAUSE) fun onPause(){ Log.d(TAG,">>>>>>>>>>>>>>>>> onPause") } @onLifecycleEvent(Lifecycle.Event.ON_STOP) fun onStop(){ Log.d(TAG,">>>>>>>>>>>>>>>>> onStop") } companion object { const val TAG = "TAG" } }

发布人:51b3****    IP:125.64.35.***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发