Android Worker由于某些原因未从inputData中提取值

问题描述 投票:0回答:1

这里是我的调试视图的screenshot。在变量视图中清晰可见intupData包含与KEY_ISSUE_IDissue.id)对应的键的值,但是

inputData.getString(KEY_ISSUE_ID)

结果为null。更奇怪的是,在其他Workers中,完全相同的代码也能很好地工作。是否有任何警告可能导致这种行为?

顺便说一句。该工作程序的不同之处在于,它与其他工作程序以ArrayCreatingInputMerger捆绑在一起。根据doc,它应该接收这些工作程序的输出作为输入。但它似乎不接收这些数据。

父OneTimeWorkRequests的输出作为输入传递给子代。

android android-workmanager
1个回答
0
投票

根据ArrayCreatingInputMerger documentation

  • 如果这是我们第一次遇到密钥:
    • 如果是数组,则将其放在输出中
    • 如果它是原始类型,请将其转换为大小为1的数组,并将其放入输出中

因此,您的ArrayCreatingInputMerger具有大小为1的字符串数组,而不是字符串。

因此,您想使用inputData并获得该数组的第一个元素(如果您只关心第一个元素):

getStringArray()
© www.soinside.com 2019 - 2024. All rights reserved.