Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.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
Android中的每个活动是否都有一个ActivityManager实例?_Android_Operating System - Fatal编程技术网

Android中的每个活动是否都有一个ActivityManager实例?

Android中的每个活动是否都有一个ActivityManager实例?,android,operating-system,Android,Operating System,我在ActivityManager中添加了一个静态字段,并将其设置在我的activity中。当我退出活动并再次输入时,我发现该值已恢复为默认值。我想知道这是否意味着每个活动都有一个活动管理器实例 基本上,我在ActivityManager中添加了以下内容: public static boolean s = false; public void setS(boolean b) { s = b; } public boolean getS() { return s; } 然后我编译了操作系统,

我在ActivityManager中添加了一个静态字段,并将其设置在我的activity中。当我退出活动并再次输入时,我发现该值已恢复为默认值。我想知道这是否意味着每个活动都有一个活动管理器实例

基本上,我在ActivityManager中添加了以下内容:

public static boolean s = false;
public void setS(boolean b) { s = b; }
public boolean getS() { return s; } 
然后我编译了操作系统,在我的应用程序中我使用反射来访问上述方法。如果我不退出我的应用程序,那么setS方法中设置的任何get都会反映在getS方法中。如果我退出应用程序并再次输入,则Get始终返回false。不知道为什么


感谢您的帮助

ActivityManager与系统中运行的所有活动交互。 将您的值保存到SharedReferences。您需要在onstart()和onresume()上再次设置值,并将值保存到onStop()和onDestroy()中的SharedReferences


退出应用程序时,reason getS()函数返回false,因为应用程序重新启动并再次设置布尔值。

这似乎不是针对所问问题的,这似乎更多地是关于通过实验修改来理解系统,而不是以一种通常的机制(如SharedReferences)更好的方式存储有用的数据。因为您已将此
设置为静态
,所以它不属于实例(在OO或Java这个词的含义中),而是属于进程。考虑到您已经使用JNI访问了它,它必须在应用程序自己的进程中,而不是在通过IPC与之交互的系统中。因此,此变量的生存期就是应用程序进程的生存期。这几乎没有告诉您ActivityManager的正常工作方式。