Android: стек трассировки для уничтожения - PullRequest
0 голосов
/ 06 января 2012

Основным видом деятельности моих приложений является «уничтожение». У меня есть сообщение журнала в уничтожении, которое печатается. Но пути, где вызывается финиш, не выполняются.

Итак, я хочу знать, как я могу узнать, что вызвало destroy () для вызова. Это закончить из моего кода, или любые другие системные ошибки.

@Override
protected void onDestroy() {
    try {
        super.onDestroy();

        Log.i("StartUpActivity", "OnDestroy");
        if (asyncTaskForSync != null && !asyncTaskForSync.isCancelled())
            asyncTaskForSync.cancel(true);
        if (DatabaseManager.getInstance() != null)
            DatabaseManager.getInstance().close();

        if (Utils.imageLoader != null)
            Utils.imageLoader.stopThread();
    } catch (Exception ex) {
        ex.printStackTrace();
    }

}

Примечание: ответ: Я сохранил android: noHistory = "true" для моей активности при запуске. Я хотел, чтобы эта страница снова не была видна на прессе после других действий. И я держал все в чистоте, как БД близко в уничтожении этой деятельности. Так что из-за nohistory = true, это действие автоматически становилось недействительным, что приводило к закрытию всех ресурсов и, следовательно, к исключениям в моем приложении.

Я исправил, убрав этот флаг и перезаписав второе действие.

Спасибо за ваши ответы

1 Ответ

1 голос
/ 06 января 2012

Существует несколько причин, по которым деятельность может быть уничтожена. Например. если пользователь поворачивает устройство, то поведение по умолчанию - уничтожить действие и создать новое.

См. «Обработка изменений конфигурации» здесь http://developer.android.com/guide/topics/fundamentals/activities.html

...