【问题标题】:how to send Multipart.Part in intent如何发送 Multipart.Part 意图
【发布时间】:2020-05-14 20:45:28
【问题描述】:

我在一个活动中有一个 okhttp3.MultipartBody.Part,需要通过 Intent put extra 将其发送到下一个活动。

它给了我一个错误

包裹:无法编组值 okhttp3.MultipartBody$Part

作为一种解决方法,我在 util 文件中添加了一个静态变量,并在下一个活动中访问它。

是否有可能按意图发送?
是因为数据量大而停止了吗?

【问题讨论】:

    标签: android okhttp multipart


    【解决方案1】:

    是否有可能按意图发送?

    不,抱歉。

    它停止是因为它是一个巨大的数据吗?

    没有。它正在停止,因为它是错误的数据类型。 Intent extras 不能容纳任意对象。

    它也可能会因为大小而使您的应用崩溃,具体取决于其中的内容,但您甚至还没有走那么远。

    作为一种解决方法,我在 util 文件中添加了一个静态变量,并在下一个活动中访问它。

    在现代 Android 应用程序中,理想情况下,两个 Activity 都不会有任何 OkHttp 对象。让存储库处理您与服务器的通信,并且活动(或者更好的是,这些活动的视图模型)可以与存储库对话。请参阅https://developer.android.com/jetpack/docs/guide 了解更多信息。

    【讨论】:

    • 哇。我从@CommonsWare 得到了答复。这对我来说是一项成就:) #massiveRespect
    • 好的。我正在尝试在改造 API 调用中发送音频、文件和图像。为此,我使用了一个 ArrayList ,它有这 3 个文件。这就是要求
    • @Prabs:没关系。但是,理想情况下,任何一个活动都不会直接进行改造调用。其他东西处理(存储库)。这样的存储库通常是一个单例(无论是手工创建还是由 Dagger 或 Koin 等依赖反转框架管理),因此两个活动都可以与之对话。然后,您不会在活动之间传递 OkHttp 对象。把它想象成你的静态变量方法,但是超级充电。 :-) 另外,谢谢你的好话!
    • @Prabs: This Java app moduleits Kotlin counterpart 演示了这项技术。
    猜你喜欢
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    相关资源
    最近更新 更多