0

登录页面后,我正在使用 JobIntentService 从服务器下载数据并通过 BroadcastReceiver 将数据传递给活动。对于较少量的数据,它可以正常工作,但是当我处理实时数据时,它会给出以下异常:

Caused by: android.os.TransactionTooLargeException: data parcel size 1450704 bytes
        at android.os.BinderProxy.transactNative(Native Method)
        at android.os.BinderProxy.transact(Binder.java:1127)
        at android.app.IActivityManager$Stub$Proxy.broadcastIntent(IActivityManager.java:3893)
        at android.app.ContextImpl.sendBroadcast(ContextImpl.java:1009)
        at android.content.ContextWrapper.sendBroadcast(ContextWrapper.java:444) 

I passing data like this from service class : 
Intent intent = new Intent(ACTION_CHECK_DOWNLOADSTATUS);
intent.putExtra("response",response);
sendBroadcast(intent);


But it gives TransactionTooLargeException..
How to prevent this?

How do I pass large amount of Data ??

Pls suggest...
4

1 回答 1

0

您不能在Intent. 如果您要传递“大量数据”,则需要使用以下方法之一:

  • 将数据存储在 SQLite 数据库中
  • 将数据存储在文件中
  • 将数据存储在一个public static变量中,以便应用程序中的所有类都可以访问它(这不是最佳选择,因为应用程序重启存在问题,但这是最简单的方法)
于 2020-07-12T21:30:33.690 回答