问题标签 [android-jetpack]
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 - Android Jetpack 导航库和 onActivityResult
我正在尝试将应用迁移到在 GoogleIO'18 上宣布的新导航架构组件
假设我需要使用通常以startActivityForResult
. 此活动来自库或系统活动,因此我无法修改它。
有没有办法将此活动作为目的地包含在导航图中并从中获取结果?
android - NavHostFragment 未解析 (AndroidX)
出于某种原因,我总是遇到以下错误:
我一直在关注 Android 开发人员指南,但在启动应用程序后立即出现上述错误。
nav_graph.xml
activity_main.xml
MainActivity.kt
build.gradle(应用程序)
基本上我正在使用Kotlin
,AndroidX
并针对Android P。我真的不知道问题出在哪里。
编辑导入可能有问题。对于导航,我不使用AndroidX
. 在使用 Jetpack 构建您的第一个应用程序中,他们使用implementation 'androidx.navigation:navigation-fragment:' + rootProject.navigationVersion
但我无法弄清楚他们使用的是哪个版本,因此我阅读了架构组件发行说明,其中说'2.0.0-alpha1'
应该使用 AndroidX。不幸的是,这无法解决。
android - 尝试在空对象引用上调用虚拟方法“boolean androidx.work.State.isFinished()”
我正在尝试使用 codeLab 文档学习 WorkManager for Android。当我尝试测试 beginUniqueWork( Ensure Unique Work )的功能时,我的应用程序崩溃了
我只是通过多次选择图像来实现 beginUniqueWork 和测试应用程序。
我在 ViewModel 类的 aplyBlur() 中编写的代码是:
android - 即使在重复时间内从未满足设置的约束条件,androidx JetPack 工作管理器也会完成工作吗?
例如:我将时间间隔为 24 小时的 PeriodicWorkRequest 排队,并受到网络需求和充电的限制。如果在 24 小时内从未满足约束条件,那么工作经理是否会按照他们在 Android 开发指南网站“即发即弃”和“ WorkManager 用于需要保证系统会运行它们的任务”中提到的那样进行工作?
java - Android 从后台服务/房间调用 ViewModel
1)如何从后台服务访问/更改 ViewModel(例如 MainActivity),或者如何在服务的 LiveData 元素上设置观察者?
2) 当数据库中的一个特殊表有一个新元素时,应该观察我的 UI(因为后台服务插入了应该在活动视图中显示的新消息 - 例如聊天)。有没有办法做到这一点?
谢谢你的帮助!
android - 显示运行 WorkManager 工作人员的详细进度
我想用新的 JetPack WorkManager(链接到codelabs)组件(在应用程序的沙箱分支中)替换我现有数据同步系统的作业调度方面。我现有的系统运行良好,但其中的一些新功能WorkManager
会派上用场(例如链接)。
我当前的系统使用 sharedLiveData
将正在进行的作业的进度传达给RecyclerView
观察它的任何 UI 元素(在我的情况下)(我实际上是 SwitchMappingViewModel
到 s 列表中SyncItem
)
新WorkManager
组件有多种方法(getStatusById
、getStatusesByTag
等)可用于检索带有一个或多个WorkStatus
es 的 LiveData,但这些仅报告课程粒度状态(运行、成功、失败、已取消)。
向 UI 传达进度(例如“已下载 546/1234 个项目”)的推荐方式是什么?setOutputData
/getOutputData
对似乎更多地用于 s 之间的通信(Worker
链接时我需要)而不是 UI。
附件是用户打开同步状态页面(已完成 2 个项目,正在进行中)时的屏幕截图(在我的应用程序的 [测试] 版本中使用我的旧方法)。
在最终产品中,用户将能够取消任何正在进行的工作并重新发出一次性工作请求。通常这些工作会被解雇PeriodicWorkRequest
。
android - 无导航编辑器 - Android Studio Canary 15 和 16
我正在为此绞尽脑汁。我正在尝试重构我的应用程序以使用 Android Studio Canary 15 中的新导航架构组件,我在创建 xml 文件时得到的只是以下消息,编辑器永远不会出现;
我已经卸载并重新安装了我安装的 Android Studio 和 Android Studio Canary 15(位于 C:\Program Files\Android\Android Studio 和 C:\Program Files\Android\Android Studio Canary 以及所有相关组件中C:\Users\[用户名]\.AndroidStudio 文件夹。
任何想法为什么这不起作用?
编辑:好的,现在有一条错误消息,当我禁用Android 支持插件时,我收到更多错误消息,告诉我重新启用插件!
编辑 2:我更新到 Canary 16,问题仍然存在。
编辑 3:我的导航图“main_graph.xml”如下;
android - 具有干净架构的 Android 分页库
我正在尝试来自Android Architecture Component的分页库,但我怀疑将它集成到一个基于干净架构的项目中。
通常我有3个模块:
- 主模块(应用程序)
- 数据模块(具有网络和数据库依赖项的 Android 模块)
- 域模块(纯 Kotlin 模块)
为了引入分页,我不得不将PagedList<T>
类视为领域类。(IMO 并不是一个糟糕的主意,因为最后是一个列表并且数据源是抽象的)
所以在域层我可以有一个像这样的存储库:
然后在数据模块中创建这样的实现:
到目前为止,一切都很好。我的疑问是,当我们需要转换表示层的域模型时(假设我的项目需要知道是否被选中以显示选中的图标),通常我会将我的域模型映射到一个表示层。
我知道DataSourceFactory
有map
和mapByPage
方法,但工厂位于数据层。我的 Viewmodel 使用来自模型层的数据,在这种情况下是 a PagedList
,据我所知,分页列表不支持映射。
那么在这种情况下应该做些什么呢?
android - 如何使用 Android Jetpack 的 Navigation 导航到第三方组件?
我浏览了 Google 的Android Jetpack Navigation示例,它确实极大地简化了应用程序组件之间的导航。
但是,我找不到任何示例如何实现对第三方库提供的组件的导航,例如应该以使用提供的构建器创建的意图启动并返回结果的活动。
示例 - 在我的主要活动中,如果用户未通过身份验证,我必须重定向到Firebase AuthUi登录页面:
和
我如何使用NavController而不是直接调用startActivityForResult来做到这一点?