Android 生命周期封装销毁
来源:互联网 发布:微商推广软件 编辑:程序博客网 时间:2024/06/15 18:36
Android中有一种情况是,当我们点击物理返回键的时候,我们的App要退出应用程序同时应该吧所有的活动Activity的所有生命周期给销毁。
实现方式如下:(实现Activity的生命周期)
public class BaseActivityLifeCallback implements Application.ActivityLifecycleCallbacks { public final List<WeakReference<Activity>> weakReferences = new LinkedList<>(); private boolean isAppForeground; @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { weakReferences.add(new WeakReference<>(activity)); } @Override public void onActivityStarted(Activity activity) { } @Override public void onActivityResumed(Activity activity) { isAppForeground = true; } @Override public void onActivityPaused(Activity activity) { isAppForeground = false; } @Override public void onActivityStopped(Activity activity) { } @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { } @Override public void onActivityDestroyed(Activity activity) { final Iterator<WeakReference<Activity>> it = weakReferences.iterator(); while (it.hasNext()) { final WeakReference<Activity> weakReference = it.next(); if (weakReference.get() == null) { it.remove(); } else if (weakReference.get() == activity) { it.remove(); } } } void finishAll() { for (WeakReference<Activity> weakReference : weakReferences) { final Activity activity = weakReference.get(); if (activity != null) { activity.finish(); } } weakReferences.clear(); } public Activity getTopActivity() { if (weakReferences.size() > 0) { return weakReferences.get(weakReferences.size() - 1).get(); } else { return null; } } public void popTopActivity() { final Iterator<WeakReference<Activity>> it = weakReferences.iterator(); final WeakReference<Activity> weakReference = it.next(); final Activity activity = weakReference.get(); if (activity == null) { it.remove(); } else { activity.finish(); } } public boolean isAppForeground() { return isAppForeground; }}
使用方式:
BaseActivityLifeCallback mActivityLifeCallback = new BaseActivityLifeCallback(); registerActivityLifecycleCallbacks(mActivityLifeCallback);
阅读全文
1 0
- Android 生命周期封装销毁
- android锁屏时生命周期异常情况处理--activity异常销毁重建
- 【Android Training - 01】详解Activity生命周期 [ Lesson 1 - 启动与销毁Activity ]
- 【Android Training - 01】详解Activity生命周期 [ Lesson 4 - 重建销毁的Activity ]
- Android连接无线键鼠导致Activity生命周期销毁重建的问题
- android 4.0以上横竖屏切换不销毁activity,不重新走生命周期,只调用onConfigurationChanged
- spring生命周期管理-初始化与销毁
- spring生命周期管理-初始化与销毁
- 异常销毁时Activity的生命周期
- android webview 销毁
- android线程销毁
- android笔记 销毁规则
- Android线程销毁
- Android:销毁当前Fragment
- Android-销毁activity
- Android之Activity销毁
- Android Fragment销毁问题
- Fragment之一:封装及生命周期
- makefile下$^,$@,$?,$<,$(@D),$(@F)定义使用详解
- NOIP模拟考试
- Unity 纹理格式
- Servlet Mapping 中/ 和 /*的区别
- 自定义控件之飘落动画
- Android 生命周期封装销毁
- asp.net core 使用session
- JSP中servlet中的路径配置问题
- Mysql 高可用方案 InnoDB Cluster
- oracle中如何判断某个日期是星期几
- java -Xms -Xmx设置java应用程序运行的内存大小,Xms Xmx PermSize MaxPermSize 区别
- iOS Protocol 协议
- 数据挖掘经典算法--朴素贝叶斯分类
- 关于The MVP