在onDestroy()中使用system.exit(0)(Android)
我知道不建议在Android应用程序中使用system.exit(0),但我想知道在onDestroy()中使用它是否可以,因为此时允许终止应用程序在onDestroy()中使用system.exit(0)(Android),android,android-lifecycle,Android,Android Lifecycle,我知道不建议在Android应用程序中使用system.exit(0),但我想知道在onDestroy()中使用它是否可以,因为此时允许终止应用程序 我问的原因是关于这个问题 您不应该调用sytem.exit(0),让android管理应用程序。如果我知道你有内存泄漏问题。我猜是因为位图。因此,请看一下这一点,以便高效地显示位图 如果在onDestroy()方法中调用system.exit(0),您将无法在横向和纵向之间切换。您可能最好查看以下选项: 不要依赖将调用的onDestroy。在某些
我问的原因是关于这个问题 您不应该调用sytem.exit(0),让android管理应用程序。如果我知道你有内存泄漏问题。我猜是因为位图。因此,请看一下这一点,以便高效地显示位图
如果在onDestroy()方法中调用system.exit(0),您将无法在横向和纵向之间切换。您可能最好查看以下选项:
- 不要依赖将调用的
。在某些情况下,操作系统会在不调用您的onDestroy
的情况下终止您的应用程序ondestory
system.exit(0)
,我会说您没事。;-)
- 如果调用了
,则表示进程处于以下两种状态之一:Activity.ondestory
Service
或ContentProvider
)运行在操作系统知道的范围内。这意味着您的进程很可能会立即被操作系统终止,或者如果系统的其他部分/其他应用程序需要物理内存,您的进程将是第一个被回收的进程。因此,调用exit(0)
不会有多大效果
--在您的进程中运行着另一个组件,系统知道它。在这种情况下,调用exit()
将终止进程,杀死其他组件并可能损坏数据。当然,操作系统可能不太在意,但您的用户可能不会欣赏它。:-)
- 如果其他应用程序已耗尽其内部Dalvik堆限制,那么自愿终止进程将无助于它们。无论一个设备有多少物理内存,操作系统都对Dalvik在任何堆分配过程中允许使用多少内存有限制。因此,系统有可能有一半的空闲内存,而特定的应用程序仍在运行
- 如果您的应用程序在内存使用方面存在问题(链接的问题暗示了这一点),并且您正试图通过在活动的下一次打开时强制执行“干净”的记录来解决问题,那么这种方法是可行的。有点但只要你的应用程序只使用活动,它就会一直有效。一旦你加入了
或内容提供者
,你就再也负担不起调用服务
(如上所述),你将被迫正确地解决问题。你不妨咬紧牙关,现在就做。最简单的方法是确保在完成特定位图时调用。当然,只要您不必在内存中保留比内存中更多的位图,这就行了,但无论如何,这是一个完全不同的野兽。:-)李>exit()
我正在制作一款游戏,它总是处于风景之中,所以这不是一个大问题,但感谢您提出。