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