使用 compose 启动 Activity 获取 TransactionTooLargeException 错误

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

我正在尝试启动打开外部应用程序的意图,如果我在 MainActivity (xml 或 compose)内调用它,该过程工作正常,但是当从 Compose Screen 调用它时,我收到此错误 java.lang.RuntimeException:android.os。 TransactionTooLargeException:数据包大小 9240036 字节

代码:

val receiptIntent = Intent(Intent.ACTION_VIEW,Uri.parse("https://api.whatsapp.com/send?phone=$phoneNumber&text=${encodedUrl}"))
activity.startActivity(receiptIntent) //activity : MainActivity
//context.startActivity(receiptIntent) //val context = LocalContext.current

我正在尝试打开外部应用程序来执行特定过程。

android kotlin mobile android-jetpack-compose
1个回答
0
投票

我遇到了同样的问题,结果发现我正在使用

rememberSavable{...}
在我的一个可组合项中托管一个
Bitmap
(一个巨大的对象),这导致应用程序在我离开活动时抛出
TransactionTooLargeException
,这是有道理的,因为
rememberSavable
使用保存的实例状态机制保留跨活动或进程重新创建的状态。

切换到

remember{...}
就成功了。

检查恢复 UI 状态了解更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.