我在ActivityManager中添加了一个静态字段,并将其设置在我的活动中。当我退出活动并再次输入时,我发现该值已恢复为默认值。我想知道这是否意味着每个活动都有一个活动经理的实例?
基本上在ActivityManager中我添加了以下内容:
public static boolean s = false;
public void setS(boolean b) { s = b; }
public boolean getS() { return s; }
然后我编译了操作系统,在我的应用程序中,我使用反射来访问上述方法。如果我不退出我的应用程序,那么在setS方法中设置的任何内容都会反映在getS方法中。如果我退出应用程序并再次输入,则getS始终返回false。不知道为什么?
任何帮助表示赞赏!
答案 0 :(得分:0)
ActivityManager与系统中运行的整体活动进行交互。 将您的值保存到SharedPreferences。您需要再次在onstart()和onresume()上设置值,并将值保存到onStop(),onDestroy()
中的SharedPreferences当您退出应用程序时,所有活动都被销毁,原因是getS()函数返回false,因为app restart和您的布尔值再次设置。