[英]Crash in gallery due to java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 539544 bytes
[英]java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 558780 bytes when navigating between fragment
我正在使用Bundle
在活动和片段之间传输数据。 当我从一个片段导航到新片段时,如果不传输数据或使用Bundle
获取数据,应用程序将崩溃,并出现以下错误。
> > 10-09 11:36:09.100 467-467/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 558780) 10-09 11:36:09.101 467-467/?
> D/AndroidRuntime: Shutting down VM 10-09 11:36:09.101 467-467/?
> E/AndroidRuntime: FATAL EXCEPTION: main
进程:com.xxxx.xxxxmobileapp.debug,PID:467 java.lang.RuntimeException:android.os.TransactionTooLargeException:数据包大小558780字节(位于android.app.ActivityThread $ StopInfo.run(ActivityThread.java:4156)在android。 os.Handler.handleCallback(Handler.java:751)android.os.Handler.dispatchMessage(Handler.java:95)android.os.Looper.loop(Looper.java:154)android.app.ActivityThread.main (ActivityThread.java:6682)在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1520)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os .ZygoteInit.main(ZygoteInit.java:1410)原因:android.os.TransactionTooLargeException:数据包大小558780字节(位于android.os.BinderProxy.transactNative(本机方法),位于android.os.BinderProxy.transact(Binder.java :) 628)在android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:4149)在android.app.ActivityThread $ StopInfo.run(ActivityThread.java:4148)在android.os.Handler.handl android.os.Handler.dispatchMessage(Handler.java:95)的eCallback(Handler.java:751)android.app.ActivityThread.main(ActivityThread.java)的android.os.Looper.loop(Looper.java:154)的eCallback(Handler.java:751) :6682),位于com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1520)的java.lang.reflect.Method.invoke(本机方法),位于com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1410)
我们可以使用网桥或任何第三方工具来解决此问题吗? 如何解决这个问题?
您必须像这样通过Bundle
传递一个长字符串,并且必须清除接收数据的Bundle
。 您可以使用任何认为好的方法。
1.方法:
Bundle bundle = new Bundle();
bundle.putString("This is just for testing purpose", "Developer program");
清除Fragment
捆绑对象
@Override
public void onViewCreated(View view, Bundle savedInstanceState)
{
String recStr= bundle.get("This is just for testing purpose");
bundle.clear();
}
2.方法
@Override
protected void onSaveInstanceState(Bundle oldInstanceState)
{
super.onSaveInstanceState(oldInstanceState);
oldInstanceState.clear();
}
会帮你的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.