问题标签 [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.

0 投票
2 回答
1134 浏览

android - 为什么 Activity 不像权限 (onRequestPermissionsResult) 那样提供 onActivityResult(...) 回调?

介绍

我正在编写一个类,如果它能够提供我当前的本地化一次,如果由于任何原因不能这样做,则返回默认坐标。类将在很多地方使用,所以我想让它尽可能简单地为其他人实现。所以代码看起来像

但是在某些情况下,位置设置被关闭,我必须要求用户打开它们。

所以现在我必须进入活动和@Override onActivityResult(),从活动级别处理它,这使得我的班级不那么独立。

我编写了在我的 LocationFinder 中处理结果代码的方法

但我仍然必须 @Override 使用此类的任何活动并从中调用此方法。

所以我的问题是。

为什么 android 架构师没有像在权限情况下那样提供 onActivityResult(...) 回调?所以我可以通过参考活动来处理类内的任何请求

一定是有原因的,但我可能遗漏了一些非常明显的东西。

0 投票
2 回答
1433 浏览

android - 目前,数据绑定不适用于非基本功能模块。请将数据绑定代码移至基本功能模块

我正在关注Google Codelabs 的即时应用程序,并且我正在尝试创建topeka-ui(即时应用程序的 UI 功能模块)。

它告诉我为该 UI 模块启用这样的数据绑定:

数据绑定说明

当我尝试在 android 块内启用数据绑定时,我在 gradle 构建期间收到以下错误。

我该如何解决?

0 投票
6 回答
25148 浏览

android - 定义了依赖功能,但未设置包 ID。您可能在基本功能中缺少功能依赖项

我正在关注其中一个Google Codelabs来制作即时应用程序。

我正在尝试创建topeka-ui即时应用程序的 UI 功能模块)。

当我尝试运行其中一个即时应用程序模块时,它说:

定义了依赖功能,但未设置包 ID。您可能在基本功能中缺少功能依赖项。

0 投票
0 回答
682 浏览

android - 浓缩咖啡 - not(isDisplayed()) 与 doesNotExist() 之间的区别

当我遇到这两个测试时,我正在阅读 Android 架构蓝图中的todoapp 。我似乎无法理解为什么有必要使用doesNotExist()increateTwoTasks_deleteOneTask()来检查具有指定标题的项目是否被删除,而使用not(isDisplayed())increateOneTask_deleteTask()来检查同样的事情是完全可以的?

我是 Espresso 测试的新手,但我知道通常doesNotExist()会调用它来确认视图已消失,但为什么not(isDisplayed())即使视图已被删除也能正常工作?我尝试使用doesNotExist(),但它会引发错误。

0 投票
2 回答
2436 浏览

android - 在具有两个(或多个)片段的单个活动上实现 MVP

我正在开发一个显示列表的小型应用程序,当单击一个项目时,它会打开一个包含项目详细信息的辅助屏幕。我想实现 MVP 作为我的这个应用程序的架构,当我有一个包含 2 个片段的活动时,我一直在努力弄清楚如何做到这一点。

出现了一些问题,例如当单击列表中的项目时,会向第一个演示者发送回调,但此时,谁负责打开第二个片段?主持人会互相“交谈”吗?我应该通过活动来完成吗?

一直在寻找具有多个实现 MVP 的片段的单个活动的示例,但还没有找到类似的东西。

(是的,可以通过其他方式完成,但该应用程序的目的是学习在具有多个片段的单个活动上实现 MVP)

感谢任何帮助!谢谢!

0 投票
5 回答
35327 浏览

android - MVVM 中的 MediatorLiveData 和 MutableLiveData 有什么区别

我进行了很多搜索,但没有找到问题的清晰答案:

  1. MediatorLiveData 和 MutableLiveData 有什么区别?

  2. 使用它们中的任何一个的合适条件是什么。

0 投票
1 回答
445 浏览

android - 混淆使用Android Room处理对象之间的关系

使用 android 数据持久库Android Room时,如何直接将CommentObject 插入到数据库中,包括所有字段值,以及如何将所有值作为 Comment Object 查询出来?

据我所知,我不能将CommentObject 用作Entity​​ Room 目录,因为该字段replyComment也是一个CommentObject。Comment即使我使用注释定义了 POJO ,我也无法查询出对象@Relations,因为对象中都包含一对一关系和一对多关系Comment

除了改变Model定义,还有其他方法Comment吗,比如使用外键,对插入动作和查询动作产生影响?

0 投票
1 回答
403 浏览

android - 模型(android 中的 MVP)如何访问和修改常见的应用程序数据?

据我了解,在视图中需要创建一个演示者,而在演示者中需要创建模型。模型(android 中的 MVP)如何访问和修改常见的应用程序数据?

  • 使用静态方法和变量来处理共享数据?
  • 通过 View 和 Present in Model 传递对数据的引用?
  • 创建不在 Presenter 中的模型?
0 投票
1 回答
1203 浏览

android - 如何使架构的 PagedListAdapter 在配置更改中幸存下来?

Android 的新 PagedListAdapter 是一个很棒的库,用于处理数据列表的分页。它对我来说效果很好,只是你如何让它像 Android 架构的 ViewModel 一样在配置更改(例如屏幕旋转)中幸存下来?

0 投票
1 回答
146 浏览

android - 请在使用“第一次离线方法”时解释 android 架构。

我的应用架构,很常见:

在此处输入图像描述

如果我有实体列表,请解释我,例如

图片说明:

目前我做(根据上图):

  1. mLiveData从存储库获取LiveData
  2. 打回来refreshFromDataBase()
  3. mLiveData.addSource来自LiveData数据库 - 是什么导致 Android 视图快速更新
  4. 打回来refreshFromNetwork()
  5. 休息更新数据库表
  6. 数据库插入导致 LiveData 添加将更改推送到视图

问题的形成

5 步的最佳实践是什么 - 当新数据出现而我必须用最新数据替换旧数据时?

目前我正在使用 RxJava、Room、Kotlin,并且我在第 3 步中使用了嵌套的 Rx.Single,这是非常难看的意大利面条代码。

喜欢

丑陋的意大利面条代码。

问题

  • 我应该在插入新项目之前擦除所有表格吗?Livedata 监听 List 的变化,所以每当有任何变化(一些项目更新,一些插入,一些删除)视图都会更新
  • 在我所有的 Streams 都是 Single 的情况下(原因:它们在 onComplete 时自行处理),如何按顺序链接它们以限制一个流规则?