Android 活动中的静态内容

Android 活动中的静态内容,android,android-activity,Android,Android Activity,为什么我不应该在活动中使用静态对象,或者不对活动进行静态调用?一般的好做法是避免将不需要的东西设置为静态,因为它们会增加内存泄漏的可能性。如果您总是持有对某些数据的引用,GC将无法释放它。一般的好做法是避免使不需要的东西保持静态,因为它们会增加内存泄漏的可能性。如果您总是持有对某些数据的引用,GC将无法释放它。更合理的说法是,在Android中使用静态变量时要格外小心 您可以使用它们,但请注意,您的应用程序可以也将被操作系统杀死,并在用户返回应用程序时重新启动,即可能从最近的应用程序列表中。这导

为什么我不应该在活动中使用静态对象,或者不对活动进行静态调用?

一般的好做法是避免将不需要的东西设置为静态,因为它们会增加内存泄漏的可能性。如果您总是持有对某些数据的引用,GC将无法释放它。

一般的好做法是避免使不需要的东西保持静态,因为它们会增加内存泄漏的可能性。如果您总是持有对某些数据的引用,GC将无法释放它。

更合理的说法是,在Android中使用静态变量时要格外小心

您可以使用它们,但请注意,您的应用程序可以也将被操作系统杀死,并在用户返回应用程序时重新启动,即可能从最近的应用程序列表中。这导致应用程序具有许多不同的入口点,并且不能假设静态变量将被初始化

例如,在应用程序的第一个活动中设置一个静态变量,并假设它总是被设置,这是一个很大的错误


另外,在将任何引用活动的内容存储为静态变量时要小心,因为这往往是不必要地消耗内存的常见来源。例如,在静态变量中存储视图几乎肯定是错误的,因为如果不清除,它将阻止整个活动被垃圾收集。

更合理的说法是,在Android中使用静态变量时要格外小心

您可以使用它们,但请注意,您的应用程序可以也将被操作系统杀死,并在用户返回应用程序时重新启动,即可能从最近的应用程序列表中。这导致应用程序具有许多不同的入口点,并且不能假设静态变量将被初始化

例如,在应用程序的第一个活动中设置一个静态变量,并假设它总是被设置,这是一个很大的错误


另外,在将任何引用活动的内容存储为静态变量时要小心,因为这往往是不必要地消耗内存的常见来源。例如,将视图存储在静态变量中几乎肯定是错误的,因为如果不清除,它将阻止整个活动被垃圾收集。

我看不出有任何问题。。。只要你不给静态对象一个对活动中非静态的任何东西的引用,它应该是好的。我看不出有任何问题。。。只要你不给静态对象一个对活动中非静态的任何东西的引用,它就应该是好的。我一直很好奇为什么一个活动中设置的静态变量可以在另一个处于前台时取消设置。在发现这一点之前,我的印象是静态成员不会被垃圾收集,我想不出其他可能被删除的原因。然而你说得对。他们可能是???虽然静态变量确实不会被垃圾收集,但如果操作系统杀死整个应用程序以释放内存,它们可以被重置。这是很常见的,可能会给开发人员带来许多无法预料的后果,例如,如果用户使用“最近使用的应用程序”列表或“后退”按钮,则可以从主活动以外的其他活动启动应用程序。一段时间以来,我一直很好奇为什么一个活动中设置的静态变量可以在另一个活动位于前台时取消设置。在发现这一点之前,我的印象是静态成员不会被垃圾收集,我想不出其他可能被删除的原因。然而你说得对。他们可能是???虽然静态变量确实不会被垃圾收集,但如果操作系统杀死整个应用程序以释放内存,它们可以被重置。这是很常见的,并且可能会给开发人员带来许多无法预料的后果,例如,如果用户使用“最近使用的应用程序”列表或“后退”按钮,则可能会从主活动以外的其他活动启动应用程序。