Периодически я получаю исключения на Android Market, которые не воспроизводятся. Трассировка стека всегда начинается следующим образом:
at ...
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4306)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
ZygoteInit $MethodAndArgsCaller, как представляется, вызывает методы приложения напрямую, а не через код. Как это происходит?
Наконец, воспроизведено одно из следующих исключений: нажмите значок приложения, коснитесь текстового поля, чтобы открыть диалоговое окно, нажмите "Домой", "убить приложение pid", нажмите значок приложения и нажмите "Назад". Добавлены сохранение и восстановление переменных экземпляров приложений в onSaveInstanceState и onRestoreInstanceState для устранения проблемы.
Хотелось бы еще раз найти описание вызовов ZygoteInit.