0

我有一个应用程序,该日志打印如下:

 GC_CONCURRENT freed 433k,7% free 7975K/8564K,paused 12ms+4ms, total 70ms

如果继续使用该应用程序可以正常工作,但是当锁定屏幕时应用程序有问题。有时屏幕锁定后它会死,有时屏幕锁定后它延迟10秒才能回来。我看到日志消息,发现后台服务很好UI 死了。是内存泄漏引起的吗?从GC_CONCURRENT可以看到只有 7% 的内存是空闲的。我想知道我错过了哪里。

另一个问题是我使用子类退出活动。当我单击后退按钮时,我调用此代码:

public void exit() {
    Log.e(TAG, "exit in myapplication");
    for (Activity activity : activityList) {
        Log.e(TAG, activity.getLocalClassName()+ " finish");
        activity.finish();
    }
    System.exit(0);
}

但是finish()完成后,活动中的onDestroy没有被调用。为什么?任何帮助我的人都会受到高度赞赏。

PS:我知道这可能是两个问题,但可以提出一个问题吗?

4

1 回答 1

0

您不应该自己管理活动,系统会处理这些。此外,您也不应该终止应用程序,这再次违反了开发人员指南。

也就是说,您的问题肯定来自您保留对活动的引用,这可以防止系统破坏它们。只需坚持推荐的处理方式,Android 不是 Windows Phone 或 iOS,您不会杀死应用程序,而是让系统决定何时需要杀死它们。

例如,请参阅 Reto Meier 的文章,Android 开发人员 @Google:何时在 Android 应用程序中包含退出按钮(提示:从不)

于 2013-01-22T07:25:02.333 回答