【问题标题】:Android: Application still running after call finish()Android:调用完成()后应用程序仍在运行
【发布时间】:2018-10-29 20:18:14
【问题描述】:

我是 Android 开发的新手...

我创建一个新活动并调用finish(); 方法。但它仍在运行,消耗电池,内存......

有没有办法完全停止应用程序,避免在活动被破坏后消耗电池和内存?

【问题讨论】:

  • 如果系统认为有必要,它会回收内存,否则它会保持资源加载,因为如果用户回来它会更快。它也没有真正消耗任何东西。空闲内存是浪费的内存。良好的内存使用是当仍然缓存相关项目时。电池消耗仅由 CPU 活动引起,除非您有一个运行的线程超过活动,否则不会发生这种情况。不要试图通过终止您的应用程序进程或使用“内存清理器”应用程序来破坏它。

标签: android android-activity activity-finish


【解决方案1】:

重复的问题!

您无法控制应用何时离开主内存,但操作系统可以。仔细看看 Activity.finish()

我认为没有办法完全停止应用程序,避免在活动被破坏后消耗电池和内存。

答案(链接)是: Activity.finish() called but activity stays loaded in memory

【讨论】:

    【解决方案2】:

    finish 方法只是完成意图!如果您想退出应用程序,请使用

    system.exit(0);

    【讨论】:

    • 这会停止 Android Studio 上的配置文件窗口...但是我的应用程序仍然出现在我的电池和内存管理器中...
    • 您在您的应用中提供任何服务吗?
    • 可以试试这个finishAffinity(); System.exit(0);
    • 建议不要使用System.exit(0);,例如看this SO post
    • ~Siamak Ferdos:应用上没有任何服务。 ~Nik: finishAffinity() 需要mimAppLevel 16,而我的是15... ~ 0X0nosugar: System.exit(0) 不解决问题,所以我将其删除...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    • 2013-02-03
    • 2015-05-18
    相关资源
    最近更新 更多