Les erreurs suivantes sont mesurées sur Android.
Fatal Exception: java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 3181388 bytes
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3950)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6501)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Si vous avez une grande quantité de données de 1 Mo ou plus dans l'intention, vous pouvez obtenir cette erreur et planter.
Il est difficile de savoir où se situe le plantage à partir du message d'erreur.
Utilisez ʻonSaveInstanceState pour identifier des zones telles que
.putExtra / .getExtraet
.putParcelable / .getParcelable`, et traitez les zones où 1 Mo ou plus est susceptible d'être défini.
Les données cibles sont temporairement sauvegardées dans un fichier ou similaire au moment de «onPause», puis rappelées et développées au moment de «onResume». Si vous voulez l'enregistrer dans un fichier, vous pouvez conserver le chemin dans l'intention et le supprimer avec ʻonDestroy`.
Recommended Posts