屏幕锁定后收集应用程序死亡

时间:2013-01-22 06:39:30

标签: android android-activity

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

 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:我知道这些可能是两个问题但是可以加入一个吗?

1 个答案:

答案 0 :(得分:0)

你不应该自己管理活动,系统正在处理这个问题。此外,您不应该再次杀死应用程序,这违反了开发人员指南。

那就是说,你的问题肯定来自这样一个事实:你要保持对活动的引用,这会阻止系统破坏它们。简单地坚持推荐的做事方式,Android不是Windows Phone或iOS,你不会杀死应用程序,而是让系统决定何时需要被杀死。

例如,请参阅Reto Meier的文章,Android dev @ Google:When to Include an Exit Button in Android Apps (Hint: Never)