Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果有任何静态变量被销毁,它们都被销毁了吗?_Java_Android_Static_Null_Destroy - Fatal编程技术网

Java 如果有任何静态变量被销毁,它们都被销毁了吗?

Java 如果有任何静态变量被销毁,它们都被销毁了吗?,java,android,static,null,destroy,Java,Android,Static,Null,Destroy,如果有任何静态变量被销毁,它们都被销毁了吗?这是我的OnCreate方法中的代码: if (!LoadedData) { LoadedData = true; SaveData = getSharedPreferences(FILENAME, MODE_PRIVATE); LoadData(); if (MainActivity.ScreenWidth == 0 && MainActivity.ScreenWidthLandscape == 0)

如果有任何静态变量被销毁,它们都被销毁了吗?这是我的
OnCreate
方法中的代码:

if (!LoadedData)
{
    LoadedData = true;
    SaveData = getSharedPreferences(FILENAME, MODE_PRIVATE);
    LoadData();
    if (MainActivity.ScreenWidth == 0 && MainActivity.ScreenWidthLandscape == 0)
        MainActivity.LoadData();
}
我的类第一次运行时,LoadedData的默认值为false,这会导致加载保存的任何值并将其存储在静态变量中。旋转设备后,此代码将不会运行,因为所需的所有值都保存在静态变量中,因此再次加载这些值将效率低下。问题是,如果一些静态变量被销毁,但不是全部,那么我的程序可能会崩溃。当静态变量被销毁时,它们会保留默认值吗?例如整数=0,布尔值=false等


我没有办法测试静态变量是否被销毁。

当你的设备被Android旋转或销毁时,你的整个应用程序被销毁,所有变量都需要重新初始化。

当你的设备被Android旋转或销毁时,你的整个应用程序被销毁,所有变量都需要重新初始化。

我不知道认为完整的应用程序被破坏了。我想这只是活动。然后,这项活动将重新启动

你的变量。如果它们是类的成员变量,那么如果类完成(被销毁),它们就会被销毁。
否则(变量不是任何类的成员),你可以考虑将它们作为类变量,因为全局变量不是好代码。

< P>我不认为整个应用程序被破坏。我想这只是活动。然后,这项活动将重新启动

你的变量。如果它们是类的成员变量,那么如果类完成(被销毁),它们就会被销毁。
否则(变量不是任何类的成员),你可以考虑将它们作为类变量,因为全局变量不是好代码。< /P> < P>检查一个类的静态变量将告诉你该类是否已被销毁。这意味着您可以知道该类中的其他变量是否仍然正常。它不告诉您其他类中的其他静态变量


如果
LoadedData
已被销毁,这将是因为没有任何内容引用包含它的类。该类已完成定稿并已回收垃圾。整个类将在系统再次加载时重新初始化。

检查某个类的静态变量将告诉您该类是否已被销毁。这意味着您可以知道该类中的其他变量是否仍然正常。它不告诉您其他类中的其他静态变量


如果
LoadedData
已被销毁,这将是因为没有任何内容引用包含它的类。该类已完成定稿并已回收垃圾。当系统再次加载时,整个类将重新初始化。

当我的设备旋转时,静态变量将保持不变。我的程序可以完美地进行旋转。问题是,如果我的应用程序中断,手机内存不足,静态变量可能会被破坏。检查一个静态变量的值是否足以确定它们是否已被销毁?如果静态变量
LoadedData
已被销毁,我的所有静态变量是否都有其默认值,包括
MainActivity.ScreenWidth
MainActivity.ScreenWidthSkype
?当我的设备旋转时,静态变量将被保留。我的程序可以完美地进行旋转。问题是,如果我的应用程序中断,手机内存不足,静态变量可能会被破坏。检查一个静态变量的值是否足以确定它们是否已被销毁?如果静态变量
LoadedData
已被销毁,我的所有静态变量是否都有其默认值,包括
MainActivity.ScreenWidth
MainActivity.ScreenWidthSkype
?我的所有静态变量都是类变量。我从几个不同的来源读到,当应用程序被中断,内存变低时,静态变量可能会被破坏。问题是我有一种情况需要编写代码,但没有办法进行测试。我所有的静态变量都是类变量。我从几个不同的来源读到,当应用程序被中断,内存变低时,静态变量可能会被破坏。问题是我有一个情况,我需要编码,没有办法测试。完美!我的代码将正常工作,因为
LoadData()
只加载当前类中的静态变量,并且当静态变量在
MainActivity
中被销毁时,这将返回true:
if(MainActivity.ScreenWidth==0&&MainActivity.ScreenWidthSkype==0)
。我只需要将该检查移动到此行之前:
如果(!LoadedData)
。谢谢你的帮助!我的代码将正常工作,因为
LoadData()
只加载当前类中的静态变量,并且当静态变量在
MainActivity
中被销毁时,这将返回true:
if(MainActivity.ScreenWidth==0&&MainActivity.ScreenWidthSkype==0)
。我只需要将该检查移动到此行之前:
如果(!LoadedData)
。谢谢你的帮助