Android在Application层级维护和管理全局所有Activity的方法ActivityLifecycleCallbacks
Android在Application层级维护和管理全局所有Activity的方法ActivityLifecycleCallbacks
经常看到有些项目中经常性的把所有activity继承自一个base的Activity,然后在每一次启动新activity时候添加当前activity到一个全局List那样的列表中,已达到全局管理和维护activity的目的,这种做法大概是四五年前的技术解决方案。如今谷歌Android官方推出了ActivityLifecycleCallbacks,ActivityLifecycleCallbacks是在Application层级的接口回调,App中所有的任何一个Activity的生命周期方法被触发时候,都会进入相应的ActivityLifecycleCallbacks生命周期里面,例如:
package zhangphil.test; import android.app.Activity; import android.app.Application; import android.os.Bundle; import com.orhanobut.logger.AndroidLogAdapter; import com.orhanobut.logger.Logger; public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); //Logger初始化。 Logger.addLogAdapter(new AndroidLogAdapter()); this.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks(){ @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { //一个App所有的任何一个Actvity进入生命周期的onCreate后会回调这个方法。 } @Override public void onActivityStarted(Activity activity) { //一个App所有的任何一个Actvity进入生命周期的onStart后会回调这个方法。 } @Override public void onActivityResumed(Activity activity) { //一个App所有的任何一个Actvity进入生命周期的onResumed后会回调这个方法。 } @Override public void onActivityPaused(Activity activity) { //一个App所有的任何一个Actvity进入生命周期的onPaused后会回调这个方法。 } @Override public void onActivityStopped(Activity activity) { //一个App所有的任何一个Actvity进入生命周期的onStopped后会回调这个方法。 } @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { } @Override public void onActivityDestroyed(Activity activity) { //一个App所有的任何一个Actvity进入生命周期的onDestroyed后会回调这个方法。 } }); } }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android AES加解密
工具类 /** * AES加解密工具类, 使用Base64进行编解码 * String value = AESUtil.encrypt("mazaiting", "123456789"); Log.e("MainActivity", value); Log.e("MainActivity", AESUtil.decrypt("mazaiting", value)); * Created by mazaiting on 2018/6/22. */ public class AESUtil { /**密钥长度*/ private static final int KEY_LENGTH = 16; /**默认填充位数*/ private static final String DEFAULT_VALUE = "0"; /** * 加密 * @param key 密钥 * @param src 加密文本 * @return 加密后的文本 * @throws Exception */ public static String encrypt(String key, String src) thr...
- 下一篇
[转载]Android性能优化来龙去脉总结
转载来自这里 以下是本人在工作中对经历过的性能优化的一些总结,依据故事的发展路线,将其分为了5个部分,分别是:常见的性能问题;产生性能问题的一些可能原因;解决性能问题的套路;代码建议及潜在性能问题排查项。 image.png 如看不清大图,下文会有拆解 一 首先,我们先了解一下都有哪些性能问题 image.png 1、内存泄露。 通俗来讲,内存泄露不仅仅会造成应用内存占用过大,还会导致应用卡顿,造成不好的用户体验,至于,为什么一个“小小的”内存泄露会造成应用卡顿,我不得不拿这幅图来说说话了。 image.png 没错,这就是Android开发童鞋需要了解的Generational Heap Memory模型,这里我们只关心当对象在Young Generation中存活了一段时间之后,如果没被干掉,那么会被移动到Old Generation中,同理,最后会移动到Permanent Generation中。那么用脚想一想就知道,如果内存泄露了,那么,抱歉,你那块内存随时间推移自然而然将进入Permanent Generation中,然鹅,内存不是白菜,想要多少就有多少,这里,因为沙盒机制的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker快速安装Oracle11G,搭建oracle11g学习环境