问题标签 [android-architecture-lifecycle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 由于缺少方法而导致发布前报告失败(在 com.google.android.apps.mtaas.crawler-1/base.apk 中)
从最近开始,我的应用开始在预发布报告中包含奇怪的错误消息(上传到 Play 商店后自动生成)。
这些报告包含以下例外情况:
和:
和:
奇怪的是,我发布的应用程序似乎在真实设备上运行良好(异常仅在发布前测试期间出现)。
我试图恢复自上次构建以来执行的所有(主要)更改,其中我没有预发布问题:从 API 26 回到 API 27,支持库的旧版本,没有 D8 等,但到目前为止没有成功:在执行的 9 个测试中,只有 1 或 2 个成功,其余的则因此类错误而失败。
我能做些什么来解决这个问题?
android - 具有数据绑定的 Android 架构组件
在最佳实践段落中处理生命周期页面上的 Android 架构组件文档中,写道:
使用数据绑定来维护视图和 UI 控制器之间的干净接口。
有人可以为我提供有关如何一起使用这些库的示例的链接吗?
android - 请在使用“第一次离线方法”时解释 android 架构。
我的应用架构,很常见:
如果我有实体列表,请解释我,例如
图片说明:
目前我做(根据上图):
mLiveData
从存储库获取LiveData- 打回来
refreshFromDataBase()
mLiveData.addSource
来自LiveData
数据库 - 是什么导致 Android 视图快速更新- 打回来
refreshFromNetwork()
- 休息更新数据库表
- 数据库插入导致 LiveData 添加将更改推送到视图
问题的形成
5 步的最佳实践是什么 - 当新数据出现而我必须用最新数据替换旧数据时?
目前我正在使用 RxJava、Room、Kotlin,并且我在第 3 步中使用了嵌套的 Rx.Single,这是非常难看的意大利面条代码。
喜欢
丑陋的意大利面条代码。
问题
- 我应该在插入新项目之前擦除所有表格吗?Livedata 监听 List 的变化,所以每当有任何变化(一些项目更新,一些插入,一些删除)视图都会更新
- 在我所有的 Streams 都是 Single 的情况下(原因:它们在 onComplete 时自行处理),如何按顺序链接它们以限制一个流规则?
android - ViewModels 的自定义半通用工厂
我正在尝试创建一个通用的 ViewModelProvider.Factory 来实例化我的 ViewModel
这些是我的捆绑包:
这些是我使用自定义 ViewModel 扩展的基本 ViewModel:
以及从其中之一扩展的 ViewModel 示例:
我的问题是
不会找到任何构造函数和这条线
出现在日志中
这是我在堆栈跟踪中得到的:
这是没有构造函数的 Kotlin 问题吗?我该如何解决?
android - 无法解决:android.arch.persistence.room:runtime: 1.0.0-alpha1
我无法编译以下内容gradle
:-
错误信息 :-
在文件中显示 在项目结构中显示dialog
如果有人可以在这里循环并帮助我,那将是有帮助的!
android - 如何在后台线程上执行 LiveData 转换?
我需要将对象返回的一种类型的数据转换为后台线程上的LiveData
另一种形式,以防止 UI 滞后。
在我的具体情况下,我有:
MyDBRow
long
对象(由原始s 和s组成的 POJOString
);- 一个Room DAO实例通过
LiveData<List<MyDBRow>>
; 和 - 期望更丰富对象的 UI (将原语膨胀为例如日期/时间对象
MyRichObject
的 POJO )
所以我需要将我LiveData<List<MyDBRow>>
的转换成一个LiveData<List<MyRichObject>>
,但不是在 UI 线程上。
该Transformations.map(LiveData<X>, Function<X, Y>)
方法执行此需要的转换,但我不能使用它,因为它在主线程上执行转换:
将主线程上的给定函数应用于 LiveData 发出的每个值
source
并返回 LiveData,它会发出结果值。给定的函数
func
将在主线程上执行。
什么是进行LiveData
转换的干净方法:
- 在主线程之外的某个地方,并且
- 仅在需要时(即仅在观察预期转换时)?
android - Android LiveData - 第二次更新时不会触发 switchMap
我有一个LiveData
依赖于另一个的对象LiveData
。据我了解,Transformations.switchMap
应该允许链接它们。但是switchMap
处理程序仅触发一次,并且不会对进一步的更新做出反应。相反,如果我observe
在第一个对象上使用,当它准备好时,检索第二个,它工作正常,但在这种情况下,我必须在Activity
而不是ViewModel
. 是否可以链接LiveData
对象,例如Transformations.switchMap
,但接收所有更新,而不仅仅是第一个?
这是一个尝试使用switchMap
:
这是一种observe
活动中的方法(有效,但需要保持活动中的逻辑):
android - AndroidViewModel - 进行重复调用不会在观察函数中返回数据
我的问题与ViewModel 第二次返回 nullobserve
有关,如果我重复调用服务器,我不会在函数中获得回调。以下是我正在使用的代码 -
在 Activity 中,ViewModel 定义如下 -
该observeViewModel
函数用于添加 observable on ViewModel
。
在上面的函数中取消注释以下行允许回调每次都来,但必须有一个正确的方法来做到这一点。
请注意:- 我不需要 RxJava 实现来实现它。
android - 无法解析所有文件以进行配置
我刚刚Android Architecture Library
在我的 Android 项目中实现了,当我构建应用程序 gradle 模块时一切正常,但我无法在物理/模拟器设备上测试它,这显示在消息 gradle build
错误:无法解析配置“:app:debugAnnotationProcessorClasspath”的所有文件。
无法解析 android.arch.lifecycle:compiler:1.0.0。要求:project :app 没有 android.arch.lifecycle:compiler:1.0.0 的缓存版本可用于离线模式。没有缓存版本的 android.arch.lifecycle:compiler:1.0.0 可用于离线模式。没有缓存版本的 android.arch.lifecycle:compiler:1.0.0 可用于离线模式。没有缓存版本的 android.arch.lifecycle:compiler:1.0.0 可用于离线模式。没有缓存版本的 android.arch.lifecycle:compiler:1.0.0 可用于离线模式。
我已经在设置中取消了我的离线模式,并且已经取消了省电模式。
请帮帮我。
android - 当应用程序后台运行时,我的 mvvm、livedata 应用程序是否应该取消网络请求?
使用 Google 的 mvvm 架构组件Github 浏览器示例作为参考,如何取消托管视图模型、观察实时数据、改造网络请求?:)
也许我读错了,但是如果网络条件很差并且请求需要例如 30 秒,则应该取消每个请求,否则如果应用程序快速打开和关闭,可能会启动许多请求。一个设计良好的应用程序将如何处理这个问题?
我认为可以通过在此处覆盖 onInactive来访问删除 livedata 观察者时的回调。我可以尝试在此处取消所有通话,但是如果我出于某种原因不想取消某些通话怎么办?
我猜当您点击返回按钮时,Facebook 不会取消尝试加载您的提要。