Android的Lifecycle
使用Lifecycle功能失败,Activity的getLifecycle().addObserver(presenter)
问题描述
使用api 28的sdk Lifecycle功能,presenter对象继承了LifecycleObserver,但是始终提示这个Activity不是一个LifecycleOwner? 明明就是啊,进入源码也能找到Activity继承了这个接口,查找了很多资料也不行,怀疑是环境问题、手机问题,各种尝试,最后使用相同的环境,写了一个测试LifecycleObserver竟然发现没有问题,不报错了;仔细一对比,原来是在LifecycleObserver的自定义类中,定义了一个方法,如下:
错误的observer的方法
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
@Override
public void onAttach(View view) {
LogHelper.de_i("BasePresenter onCreate");
}
正确的observer的方法
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
@Override
public void onAttach() {
LogHelper.de_i("BasePresenter onCreate");
}
发现不同没
参数问题,正确的observer默认调取的方法是没有参数的,而错误的却是有参数;据官方资料被调用的方法参数要不为空要不就是LifecycleOwner;由于工作时间紧张没有来得及去分析原理为什么,我觉得背后应该是用了代理或者放射去调用我们的observer方法,系统吊起时不知道参数类别,所以不允许去设置参数;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】