Android 我想把大数据从工作经理传给我的片段,而不使用文件室

Android 我想把大数据从工作经理传给我的片段,而不使用文件室,android,multithreading,kotlin,android-workmanager,Android,Multithreading,Kotlin,Android Workmanager,我想把从WorkManagerAPI请求中得到的列表传递到我的片段中,以便更新recyclerview的适配器。我不想使用Room,因为列表大于10KB,但我使用runOnUIThread,这样我就可以传递它们。我使用findFragmentByTag获得了片段实例,但我不知道哪种方法是将列表传递给适配器的最佳方法 这是我的密码: 请帮帮我:) 试试看{ val groupsResponse=client.groups().execute() 如果(!groupsResponse.isSucce

我想把从WorkManagerAPI请求中得到的列表传递到我的片段中,以便更新recyclerview的适配器。我不想使用Room,因为列表大于10KB,但我使用runOnUIThread,这样我就可以传递它们。我使用findFragmentByTag获得了片段实例,但我不知道哪种方法是将列表传递给适配器的最佳方法

这是我的密码: 请帮帮我:)

试试看{
val groupsResponse=client.groups().execute()
如果(!groupsResponse.isSuccessful)返回结果
val list=groupsResponse.body()!!
活动?.runOnUiThread{
活动作为ViewPageActivity
val viewPager=activity.findViewById(R.id.view\u pager)
val fragment=activity.supportFragmentManager.findFragmentByTag(
“android:切换器:”+
R.id.view_pager+“:”+viewPager.currentItem
)
//如何将数据传递到适配器?
}
结果
}捕获(异常:异常){
例外情况。printStackTrace()
结果=结果。失败
}

如果您有片段的实例,您可以将其转换为具体的实现,然后调用您定义的方法

但你不应该这样做。在配置更改时,将重新创建片段。因此,您应该使用ViewModel,ViewModel会将数据传递给片段。

您是否试图在worker类中获取活动实例和片段?如果是这样,请不要这样做-它不会正常工作。WorkManager的全部要点是,当前台UI未启动时,您的工作可以在后台执行,这意味着所有这些内容都可以为空

相反,在片段中,观察工作人员的状态以获得相关输出

try {
        val groupsResponse = client.groups().execute()
        if (!groupsResponse.isSuccessful) return result

        val list = groupsResponse.body()!!

        activity?.runOnUiThread {

            activity as ViewPagerActivity

            val viewPager = activity.findViewById<ViewPager>(R.id.view_pager)
            val fragment = activity.supportFragmentManager.findFragmentByTag(
                "android:switcher:" +
                        R.id.view_pager + ":" + viewPager.currentItem
            )


             //how to pass data to adapter?

        }


        Result.SUCCESS


    } catch (exception: Exception) {
        exception.printStackTrace()
        result = Result.FAILURE


    }