Dostałem mail od użytkownika, który ma dużo aplikacji zainstalowanych, że ma problemy, kiedy moja aplikacja gromadzi informacje o aktywności z tym kodem:Zarządca pakietu zmarł
getPackageManager().queryIntentActivities(mAinIntent, 0)
cały źródło tutaj: https://github.com/ligi/FAST
to co się dzieje
Caused by: java.lang.RuntimeException: Package manager has died
at android.app.ApplicationPackageManager.queryIntentActivities(ApplicationPackageManager.java:479)
at org.ligi.fast.BaseAppGatherAsyncTask.doInBackground(BaseAppGatherAsyncTask.java:34)
at org.ligi.fast.BaseAppGatherAsyncTask.doInBackground(BaseAppGatherAsyncTask.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
... 5 more
Caused by: android.os.TransactionTooLargeExceptionTransactionTooLargeException
at android.os.BinderProxy.transact(Native Method)
at android.content.pm.IPackageManager$Stub$Proxy.queryIntentActivities(IPackageManager.java:2230)
at android.app.ApplicationPackageManager.queryIntentActivities(ApplicationPackageManager.java:473)
... 9 more
Log:
0 D: Writing unhandled exception to: /data/data/org.ligi.fast/files/3.7-1364933885194.tracedroid
wydaje się, że problem, który używam na granicy 1mb, ale jak się stamtąd wydostać? Jak inaczej mogę uzyskać potrzebne informacje? Czy istnieje sposób na porwanie danych?
Czy to literówka 'TransactionTooLargeExceptionTransactionTooLargeException'? [Zobacz tę] (http://developer.android.com/reference/android/os/TransactionTooLargeException.html) * Bufor transakcji Binder ma ograniczony stały rozmiar, obecnie 1 MB, który jest wspólny dla wszystkich transakcji w toku procesu . W związku z tym ten wyjątek może zostać zgłoszony w przypadku wielu transakcji w toku, nawet jeśli większość pojedynczych transakcji ma umiarkowany rozmiar. * – t0mm13b
'Klasa AppInfo', prywatna ikona BitmapDrawable; "... czy jedzą za dużo pamięci? Dlaczego przekazujesz wiele kopii 'Contexts' z wnętrza AsyncTask? – t0mm13b
yea - wydaje się być c & p'o - nie ma pojęcia, jak to podwoić. Czy widzisz obejście tego problemu? – ligi