android相关内容

ListAdapter diff不在同一列表实例上调度更新,但也不在与LiveData不同的列表上调度更新

如果新列表只具有已修改的项,但具有相同的实例,则ListAdapter(实际上是其实现中的AsyncListDiffer)不会更新列表,这是一个已知问题。如果您在内部使用相同的对象,则更新也不适用于新实例列表。 要使所有这些都起作用,您必须创建整个列表和内部对象的硬拷贝。 实现这一目标的最简单方法: items.toMutableList().map { it.copy() } 但 ..

LiveData vs StateFlow:我们应该从实时数据切换到状态流吗?

我见过推荐切换到StateFlow的文章。 就像here。 同样在新的Android工作室中,StateFlow支持自动包含在数据绑定的功能中,包括协程依赖。 大多数应用程序已经在使用实时数据。 我们是否应该从LiveData迁移到StateFlow?有什么好处? 推荐答案 状态流和实时数据没有太大区别。主要区别在于State flow需要初始值,因此不需要检查是否为空。第二个不同之处 ..

我们可以在不损失任何价值的情况下使用LiveData吗?

我希望使用LiveData来处理定制视图及其包装片段之间的通知类型,因为它已经具有生命周期感知功能。但似乎LiveData可能会丢失值:它只会更新到其最新状态,也不会在其观察器处于非活动状态期间激发值。 我已经查看了Google代码示例中的SingleLiveEvent purpose,但该解决方案似乎尚未经过战斗测试,而且ticket最近仍在尝试改进该解决方案。 所以我正在寻找一种简 ..
发布时间:2022-08-20 13:43:58 移动开发

Android Room@多对多关系?

我正在开发一个Android应用程序,正在使用Android操作系统中的新架构组件:LiveData、ViewModel和Room。 我对Room实现有一个小问题,那就是创建一个@Relationship,它返回连接查询(多对多关系)的结果。 我的数据库结构如下: @Entity public class Student{ @PrimaryKey private int id; ..
发布时间:2022-08-20 13:33:01 移动开发

如何在片段中使用ViewModel?

我使用的是MVVM架构。我有一个活动和几个片段,我想在活动中的API中发出一个请求,然后使用ViewModel,感谢获得的数据,将它们显示在片段中。我该怎么做呢?我当前的解决方案不起作用: 活动: viewModelRoutesFragment = new ViewModelProvider(this).get(ViewModelRoutesFragment.class); viewM ..
发布时间:2022-08-20 13:25:32 Java开发

键盘使用Xamarin表单在Android上快速隐藏和重新出现

我们正试图使用Xamarin表单构建一个聊天应用程序,但我们一直在Android键盘上收到这个令人讨厌的错误。每当点击“发送”按钮时,条目(用于聊天的文本框)上的焦点就会消失,键盘也会消失。这不是我们想要的,因此我们将以下行添加到TapGestureRecognizer: messageEntry.Focus(); 但由于某些原因,这种情况发生得不够快,经常会出现键盘关闭并立即重新打开的 ..
发布时间:2022-08-19 13:02:12 C#/.NET

Cordova Android应用程序-发布版本-无法连接到服务器

我正在开发Cordova应用程序。这将使用HTTPS URL加载应用程序加载的客户列表。 在调试模式下运行时(使用Cordova Run Android)应用程序工作正常,但当我为同一应用程序创建发布版本时,应用程序无法连接到服务器。出现错误“无法连接到服务器。状态为0”。 这是我的技术堆栈跟踪。 Cordova V4.0 Cordova Android Platform v3.6 ..
发布时间:2022-08-17 23:21:33 移动开发

Wear OS瓷砖是如何每秒自我更新的?

我已经做了一个瓷砖,应该可以显示当前的心率。磁贴从共享的偏好中获取心率,它工作得很好,但我需要像每一秒一样刷新它。目前我只能使用.setFreshnessIntervalMillis(1000*60) 每分钟刷新一次 文档说我可以使用此命令从应用程序中的任何位置更新我的磁贴... TileService.getUpdater(context) .requestUpdate( ..
发布时间:2022-08-17 21:43:31 Java开发

如何使用ADB启动Android Wear Watch Face?

出于测试目的,我想通过ADB停止并重新启动我的Android Wear Watch Face服务。停止它似乎工作正常: adb shell am force-stop com.package.name 但再次启动该服务让我感到困惑。Watch Faces是而不是活动,因此无法通过am start启动。我尝试在包上使用monkey命令,但不起作用。我尝试手动启动该服务: adb sh ..
发布时间:2022-08-17 21:31:46 移动开发

在父视图的两侧放置两个宽度为WRAP_CONTENT的多行TextView

请帮我实现以下两个TextView的排列: 左边是一个带有标题的简单TextView,右边是另一个TextView,它的左侧有一个可绘制的(这很重要,因为它我不能使用match_parent)。两个TextView都应wrap_content并按在其一侧。 如果其中一个TextView太长,它应该靠在另一个TextView上并换行自己的文本。 如果两个TextView都很长,则它们应该占 ..
发布时间:2022-08-16 18:26:34 移动开发

手柄视图模型注入到仪器测试中

我一直在搜索如何将ViewModel注入测试中,以便我可以对其进行测试。假设视图模型有一个带有某个业务逻辑交互程序的构造函数注入。我可以很容易地将它注射到碎片中,但在测试中没有成功。 @HiltAndroidTest class ViewModelTest val randomViewmodel: RandomViewmodel// now what ? since by viewMod ..
发布时间:2022-08-16 10:19:25 移动开发

如何从片段或活动中调用暂停函数?

我想请求权限,并通过非阻塞函数进行。因为我需要上下文,所以不能从ViewModel中调用它。如何为碎片和调用暂停函数指定默认的UI作用域: class MapsFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreate ..
发布时间:2022-08-15 17:38:37 移动开发

内容解析程序尝试写入文件,但无法获取权限

我的内容提供商尝试在外部存储上创建文件,但它需要android.permission.WRITE_EXTERNAL_STORAGE 权限。我已将此权限添加到清单,但如果Build.VERSION.SDK_INT >= 23它无法创建文件。 因此,我希望在ContentProvider开始工作之前运行一个活动,以获得用户的许可。我怎么能做到这一点。谢谢。 注意:我不是在问如何获得运 ..
发布时间:2022-08-15 15:15:50 Java开发