问题标签 [android-architecture]
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 - 为什么 Activity 不像权限 (onRequestPermissionsResult) 那样提供 onActivityResult(...) 回调?
介绍
我正在编写一个类,如果它能够提供我当前的本地化一次,如果由于任何原因不能这样做,则返回默认坐标。类将在很多地方使用,所以我想让它尽可能简单地为其他人实现。所以代码看起来像
但是在某些情况下,位置设置被关闭,我必须要求用户打开它们。
所以现在我必须进入活动和@Override onActivityResult(),从活动级别处理它,这使得我的班级不那么独立。
我编写了在我的 LocationFinder 中处理结果代码的方法
但我仍然必须 @Override 使用此类的任何活动并从中调用此方法。
所以我的问题是。
为什么 android 架构师没有像在权限情况下那样提供 onActivityResult(...) 回调?所以我可以通过参考活动来处理类内的任何请求
一定是有原因的,但我可能遗漏了一些非常明显的东西。
android - 目前,数据绑定不适用于非基本功能模块。请将数据绑定代码移至基本功能模块
我正在关注Google Codelabs 的即时应用程序,并且我正在尝试创建topeka-ui
(即时应用程序的 UI 功能模块)。
它告诉我为该 UI 模块启用这样的数据绑定:
当我尝试在 android 块内启用数据绑定时,我在 gradle 构建期间收到以下错误。
我该如何解决?
android - 定义了依赖功能,但未设置包 ID。您可能在基本功能中缺少功能依赖项
我正在关注其中一个Google Codelabs来制作即时应用程序。
我正在尝试创建topeka-ui
(即时应用程序的 UI 功能模块)。
当我尝试运行其中一个即时应用程序模块时,它说:
定义了依赖功能,但未设置包 ID。您可能在基本功能中缺少功能依赖项。
android - 浓缩咖啡 - not(isDisplayed()) 与 doesNotExist() 之间的区别
当我遇到这两个测试时,我正在阅读 Android 架构蓝图中的todoapp 。我似乎无法理解为什么有必要使用doesNotExist()
increateTwoTasks_deleteOneTask()
来检查具有指定标题的项目是否被删除,而使用not(isDisplayed())
increateOneTask_deleteTask()
来检查同样的事情是完全可以的?
我是 Espresso 测试的新手,但我知道通常doesNotExist()
会调用它来确认视图已消失,但为什么not(isDisplayed())
即使视图已被删除也能正常工作?我尝试使用doesNotExist()
,但它会引发错误。
android - 在具有两个(或多个)片段的单个活动上实现 MVP
我正在开发一个显示列表的小型应用程序,当单击一个项目时,它会打开一个包含项目详细信息的辅助屏幕。我想实现 MVP 作为我的这个应用程序的架构,当我有一个包含 2 个片段的活动时,我一直在努力弄清楚如何做到这一点。
出现了一些问题,例如当单击列表中的项目时,会向第一个演示者发送回调,但此时,谁负责打开第二个片段?主持人会互相“交谈”吗?我应该通过活动来完成吗?
一直在寻找具有多个实现 MVP 的片段的单个活动的示例,但还没有找到类似的东西。
(是的,可以通过其他方式完成,但该应用程序的目的是学习在具有多个片段的单个活动上实现 MVP)
感谢任何帮助!谢谢!
android - MVVM 中的 MediatorLiveData 和 MutableLiveData 有什么区别
我进行了很多搜索,但没有找到问题的清晰答案:
MediatorLiveData 和 MutableLiveData 有什么区别?
使用它们中的任何一个的合适条件是什么。
android - 混淆使用Android Room处理对象之间的关系
使用 android 数据持久库Android Room时,如何直接将Comment
Object 插入到数据库中,包括所有字段值,以及如何将所有值作为 Comment Object 查询出来?
据我所知,我不能将Comment
Object 用作Entity
Room 目录,因为该字段replyComment
也是一个Comment
Object。Comment
即使我使用注释定义了 POJO ,我也无法查询出对象@Relations
,因为对象中都包含一对一关系和一对多关系Comment
。
除了改变Model定义,还有其他方法Comment
吗,比如使用外键,对插入动作和查询动作产生影响?
android - 模型(android 中的 MVP)如何访问和修改常见的应用程序数据?
据我了解,在视图中需要创建一个演示者,而在演示者中需要创建模型。模型(android 中的 MVP)如何访问和修改常见的应用程序数据?
- 使用静态方法和变量来处理共享数据?
- 通过 View 和 Present in Model 传递对数据的引用?
- 创建不在 Presenter 中的模型?
android - 如何使架构的 PagedListAdapter 在配置更改中幸存下来?
Android 的新 PagedListAdapter 是一个很棒的库,用于处理数据列表的分页。它对我来说效果很好,只是你如何让它像 Android 架构的 ViewModel 一样在配置更改(例如屏幕旋转)中幸存下来?
android - 请在使用“第一次离线方法”时解释 android 架构。
我的应用架构,很常见:
如果我有实体列表,请解释我,例如
图片说明:
目前我做(根据上图):
mLiveData
从存储库获取LiveData- 打回来
refreshFromDataBase()
mLiveData.addSource
来自LiveData
数据库 - 是什么导致 Android 视图快速更新- 打回来
refreshFromNetwork()
- 休息更新数据库表
- 数据库插入导致 LiveData 添加将更改推送到视图
问题的形成
5 步的最佳实践是什么 - 当新数据出现而我必须用最新数据替换旧数据时?
目前我正在使用 RxJava、Room、Kotlin,并且我在第 3 步中使用了嵌套的 Rx.Single,这是非常难看的意大利面条代码。
喜欢
丑陋的意大利面条代码。
问题
- 我应该在插入新项目之前擦除所有表格吗?Livedata 监听 List 的变化,所以每当有任何变化(一些项目更新,一些插入,一些删除)视图都会更新
- 在我所有的 Streams 都是 Single 的情况下(原因:它们在 onComplete 时自行处理),如何按顺序链接它们以限制一个流规则?