Android 变量丢失值

Android 变量丢失值,android,xamarin,Android,Xamarin,我有一个类,其中包含一个变量 public class MyClass { public static string testenome; public string Testenome { get { return testenome; } set { testenome = value; } } } 当我将应用程序留在后台时,我一返回就丢失了变量的值 为了让变量保持固定,只有在关闭应用程序后才会丢失它?是的,您可以将该变量保

我有一个类,其中包含一个变量

 public class MyClass
{
    public static string testenome;
    public string Testenome
    {
        get { return testenome; }
        set { testenome = value; }
    }
}
当我将应用程序留在后台时,我一返回就丢失了变量的值


为了让变量保持固定,只有在关闭应用程序后才会丢失它?

是的,您可以将该变量保存在
共享引用中
中,这样即使它已关闭,也会保留在应用程序内存中

SharedReferences

//MY_PREFS_NAME - a static String variable like: 
//public static final String MY_PREFS_NAME = "MyPrefsFile";
 SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
 editor.putString("name", "TestName");
 editor.commit();
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String name = prefs.getString("name", "No name defined");//"No name defined" is the default value.
现在,每当您在关闭应用程序后返回应用程序时,只需从
SharedReferences

//MY_PREFS_NAME - a static String variable like: 
//public static final String MY_PREFS_NAME = "MyPrefsFile";
 SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
 editor.putString("name", "TestName");
 editor.commit();
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String name = prefs.getString("name", "No name defined");//"No name defined" is the default value.

这是在卸载应用程序之前保留任何此类变量的最佳方法。

testnome不应该有私有访问修饰符吗?您还可以提供如何实例化类和分配值的代码,这很可能与范围相关。如果代码中发生异常,则在这种情况下,静态值可能会消失。您需要提供更多详细信息。考虑到Android应用程序的工作方式,这种行为似乎很正常。我建议阅读有关活动生命周期的内容:MyClass是否扩展了应用程序?此外,您可能需要在活动生命周期onCreate()、onResume()和onPause()中存储和恢复变量值。