0

我的应用程序主要活动正在被“破坏”。我在销毁中有一条正在打印的日志消息。但是调用完成的路径没有被执行。

所以我想知道如何找出要调用的触发破坏()。它是从我的代码中完成的,还是任何其他系统错误。

@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"。我希望此页面在其他活动的后按时不再可见。在破坏这项活动时,我已经像 db close 一样清理了所有东西。所以由于 nohistory = true,这个活动被自动销毁,导致所有资源关闭,从而导致我的应用程序出现异常。

我通过删除此标志并覆盖第二个活动的 onbackpressed 来纠正。

感谢您的回答

4

1 回答 1

1

活动可能被破坏的原因有多种。例如,如果用户旋转设备,默认行为是销毁活动并创建一个新活动。

请参阅此处的“处理配置更改” http://developer.android.com/guide/topics/fundamentals/activities.html

于 2012-01-06T15:21:01.050 回答