java.lang.RuntimeException: android.os.TransactionTooLargeException: размер пакета данных 558780 байт при навигации между фрагментами - PullRequest
0 голосов
/ 09 октября 2018

Я использую 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 (обработчик.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)

Можем ли мы использовать мост или какой-либо сторонний инструмент для решения проблемы?Как решить эту проблему?

1 Ответ

0 голосов
/ 09 октября 2018

Вы должны передать длинную строку с 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();
}

Это поможет вам.

...