小编Nur*_*lov的帖子

如何在没有序列化的情况下将对象作为输入传递给 WorkManager?

我需要将复杂对象传递给 WorkManager。或者我需要序列化包含 Livedata 和 Date 的对象。

它抛出 java.lang.IllegalArgumentException: KeycabinId2 has invalid type class com.example.sonyadmin.data.Task

     val data = workDataOf("cabinId2" to task)
     val uploadWorkRequest = OneTimeWorkRequestBuilder<WManager>()
         .setInputData(data)
         .build()
Run Code Online (Sandbox Code Playgroud)

android-workmanager

6
推荐指数
1
解决办法
2630
查看次数

我可以在另一个类中传递视图模型范围吗?协程

我在 Pagging Library Jetpack 中使用挂起功能。

在 loadAfter() 和 loadInitial() 中,我使用改造挂起函数。为此,我需要使用不推荐的 GlobalScope,如何传递 viewModel 的范围?

android kotlin-coroutines android-jetpack-navigation

6
推荐指数
1
解决办法
1344
查看次数

如何删除撰写视图上的阴影?

我在 android 视图中使用撰写按钮,但底部有一些阴影。我怎样才能删除它?

    @Composable
fun VisibilityAnimationFAB() {
    var expanded by remember { mutableStateOf(true) }
    FloatingActionButton(
        onClick = { expanded = !expanded },
        modifier = Modifier
    ) {
        Row(Modifier.padding(start = 16.dp, end = 16.dp)) {
            Icon(
                vectorResource(id = R.drawable.ic_twitter),
                Modifier.align(Alignment.CenterVertically)
            )
            AnimatedVisibility(
                expanded,
                modifier = Modifier.align(Alignment.CenterVertically)
            ) {
                androidx.compose.material.Text(modifier = Modifier.padding(start = 8.dp), text = "Tweet")
            }
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

android floating-action-button android-jetpack-compose

6
推荐指数
2
解决办法
8928
查看次数

如何使用带有挂起API功能的Authenticator?改造

我正在构建客户端:

OkHttpClient().newBuilder()
        .authenticator(object : Authenticator {
        override fun authenticate(route: Route?, response: Response): Request? {
            val request = AppPreferences.refreshToken?.let {
                api.refreshTokenC(it).execute()
            }
            
         ...
        })
Run Code Online (Sandbox Code Playgroud)

为此,我使用通常的 fun 来返回 Call :

@POST("Accounts/refresh")
fun refreshTokenC(@Query("refreshToken") refreshToken: String): Call<TokenResponse>
Run Code Online (Sandbox Code Playgroud)

但是如何将它与挂起功能一起使用呢?:

    @POST("Accounts/refresh")
suspend fun refreshToken(@Query("refreshToken") refreshToken: String): Response<TokenResponse>
Run Code Online (Sandbox Code Playgroud)

android okhttp retrofit2 kotlin-coroutines

6
推荐指数
1
解决办法
2333
查看次数

可以始终使用WorkManager代替协程吗?

我想知道当有出色的解决方案作为WorkManager时,为什么要理会rx或协程。但是对于几乎所有教程,他们都使用协程,所以WorkManager可能有缺点吗?

android kotlinx.coroutines android-jetpack android-workmanager

5
推荐指数
3
解决办法
1368
查看次数

如何在AndroidX中实例化ViewModel?

我想使用androidx库在Activity中初始化ViewModel

我已经尝试了文档中说的内容,但是没有用。“ .of”未解析。

import androidx.appcompat.app.AppCompatActivity
Run Code Online (Sandbox Code Playgroud)

import android.os.Bundle import androidx.databinding.DataBindingUtil import androidx.lifecycle.ViewModelProvider import com.example.myapplication.databinding.ActivityMainBinding

MainActivity类:AppCompatActivity(){

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    val binding: ActivityMainBinding = DataBindingUtil.setContentView(
        this, R.layout.activity_main)
    binding.setLifecycleOwner(this)

    var model = ViewModelProvider.of(this).get(SheduleViewModel::class.java)

}
Run Code Online (Sandbox Code Playgroud)

}

的尚未解决,可能是在androidx中有其他方法

android viewmodel android-jetpack

5
推荐指数
6
解决办法
2314
查看次数

koin 传递 CoroutineScope 作为 RoomDatabaseCallback 的依赖项

我有一个需要 CoroutineScope 进行初始化的数据库。

@Database(entities = [Word::class], version = 1)
 abstract class WordRoomDatabase : RoomDatabase() {
abstract fun wordDao(): WordDao

 companion object {
@Volatile
private var INSTANCE: WordRoomDatabase? = null

fun getDatabase(
        context: Context,
        scope: CoroutineScope//this dependecy!!!
): WordRoomDatabase {
    return INSTANCE ?: synchronized(this) {
        val instance = Room.databaseBuilder(
                context.applicationContext,
                WordRoomDatabase::class.java,
                "word_database"
        )
                .addCallback(WordDatabaseCallback(scope))
                .build()
        INSTANCE = instance
        instance
    }
}

private class WordDatabaseCallback(
        private val scope: CoroutineScope
) : RoomDatabase.Callback() {
    override fun onOpen(db: SupportSQLiteDatabase) {
        super.onOpen(db)
        INSTANCE?.let { database …
Run Code Online (Sandbox Code Playgroud)

android android-room koin

5
推荐指数
1
解决办法
1203
查看次数

如何在 WorkManager doWork() 中显示 toast

如何在 WorkManager 中显示 toast do work()?

当我尝试时,它会抛出

Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
Run Code Online (Sandbox Code Playgroud)

android-toast android-workmanager

5
推荐指数
1
解决办法
1428
查看次数

如何测试 Jetpack Compose?

我使用新的 Jetpack Compose,现在是时候测试 UI 了。有谁知道测试它的工具吗?
由于 Espresso 主要依赖于视图,我认为它没有帮助。

android android-testing android-espresso android-jetpack-compose

5
推荐指数
1
解决办法
5760
查看次数

使用 jetpack 从 ViewPager2 导航到另一个片段

我有一个活动,FragmentHome 包含 viewpager2。在viewpager 里面有FirstFragment。

在此处输入图片说明

当我想从 FirstFragment 导航到不在 viewpager2 中的 SecondFragment 时

在此处输入图片说明

它抛出

 java.lang.IllegalArgumentException: navigation destination com.example.mymessangerfcm:id/action_FirstFragment_to_SecondFragment is unknown to this NavController
Run Code Online (Sandbox Code Playgroud)

亲爱的社区如何处理这样的导航,为什么会抛出异常?

android android-viewpager2 android-jetpack-navigation

5
推荐指数
1
解决办法
1069
查看次数