koin相关内容

使用 Android 导航将数据传回上一个片段

我已经开始使用 Android 架构组件(导航和安全参数、视图模型)以及 Koin 库. 目前,我在两个片段之间传递参数时遇到问题 - 我需要将字符串值从片段 A 传递到片段 B,在片段 B 中修改该值并将其传递回片段 A. 我找到了一种可能的解决方案 - 共享视图模型.不幸的是,这种方法有一个问题,因为我可以在屏幕之间传递和修改值,但是当片段 A 导航到另一个目的地时,共享视图模型中 ..

如何在 Compose NavGraph 内的两个或多个 Jetpack 可组合之间共享视图模型?

考虑这个例子. 对于身份验证,我们将使用 2 个屏幕 - 一个屏幕输入电话号码,另一个屏幕输入 OTP. 这两个屏幕都是在 Jetpack Compose 中制作的,对于 NavGraph,我们使用的是撰写导航. 另外我不得不提到 DI 是由 Koin 处理的. val navController = rememberNavController()导航主机(导航控制器){导航( ..

Koin 共享范围为嵌套图的依赖项

我想知道如何使用 Koin 库正确确定依赖范围. 由于 Google 推荐了 单一Activity 架构 AndroidX Navigation lib 已成为通过轻松交换 Fragment 来促进这一点的关键库. 典型的现代 Android 应用在包和/或 Gradle 模块中分离了多个功能. 这些功能模块提供了一个可以在根图中用作嵌套图的图.(见图) 应遵守以下规则: ..

优化ViewModel和DataBinding的父片段,以避免样板代码

我有一个ParentFragment和ChildFragment.他们工作得很好. 我的问题是,将来我可能会创建许多子片段,这使我为每个子片段编写了样板代码.因此,我想优化我的ParentFragment,这样我就不必为以后创建的每个新子框架编写样板代码. ParentFragment abstract class ParentFragment ..

Koin注入WorkManager

我有一个基本的工作经理 class BackgroundSyncWorker ( appContext: Context, workerParams: WorkerParameters ): Worker(appContext, workerParams) { override fun doWork(): Result { return Result ..
发布时间:2020-06-29 19:19:20 其他开发

如何在单元测试中获取上下文以在内存数据库对象中创建Room数据库

我正在尝试在执行数据库插入的应用程序存储库类中测试此功能.我正在使用Koin作为依赖项注入库.为了进行测试,我需要创建一个内置在内存中的数据库版本.要创建该数据库,我需要Android应用程序上下文.因此,我创建了如下的测试类. import android.content.Context import androidx.arch.core.executor.testing.InstantT ..
发布时间:2020-06-29 19:19:17 移动开发

Koin使用SavedStateHandle共享了ViewModel

我有一个活动申请和片段数量.其中一些片段正在使用我的视图模型,通常是这样的: private val myViewModel: MyViewModel by sharedViewModel() 如果我想同时拥有模型shared并通过SavedStateHandle保持其状态怎么办?我不知道是否支持此功能,如果支持,则需要使用它(在托管活动中将viewmodel声明为stateViewMo ..
发布时间:2020-06-29 19:19:14 移动开发

使用Android导航将数据传回上一个片段

我已经开始使用Android体系结构组件(导航和安全Args,视图模型)以及Koin库. 当前,我在两个片段之间传递参数时遇到了问题-我需要将一个字符串值从片段A传递到片段B,在片段B中修改此值,然后将其传递回片段A. 我找到了解决我的问题的一种可能的方法-共享视图模型.不幸的是,这种方法有一个问题,因为我可以在屏幕之间传递和修改值,但是当片段A导航到另一个目标时,共享视图模型中的值仍 ..