我在用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)
在 java.lang.reflect.Method.invoke(本机方法)
在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
在 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.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)
在 java.lang.reflect.Method.invoke(本机方法)
在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
在 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.Method
@Override
protected void onSaveInstanceState(Bundle oldInstanceState)
{
super.onSaveInstanceState(oldInstanceState);
oldInstanceState.clear();
}
它会对你有所帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)