在Xamarin.Android中,如果一个Activity由于内存不足而被杀死,我仍然可以从另一个Activity中调用该Activity中定义的静态方法。例如:
public class MyKilledActivity : Activity
{
....
public static int MyStaticMethod()
{
.....
return someIntValue;
}
}
public class AnotherActivity : Activity
{
.....
int value = MyKilledActivity.MyStaticMethod(); // Would it work if MyKilledActivity is destroyed?
}
如果Activity被销毁,我可以从Activity调用静态方法吗?
就像SushiHangover说的那样,答案是肯定的。
在Xamarin.Android中,如果一个Activity由于内存不足而被杀死,我还可以从另一个Activity中调用该Activity中定义的静态方法吗?
请注意,Android不会杀死单个活动,Android会杀死进程。
流程大致是应用程序和该应用程序中的所有内容 - 与该特定应用程序相关的所有活动,服务和应用程序类,在大多数情况下,一个应用程序等于一个进程。
这意味着,如果Android修剪了一个进程,那么其中的所有活动(以及与该应用程序相关的所有其他活动)也将因此而死亡。 Android(特别是负责在达到某些内存阈值时终止进程的Android内核)不会修改该进程内/该应用程序内的单个组件,它甚至不知道或不关心它们是否存在。
因此,如果你的应用程序由于内存不足而被系统杀死,那么你的所有Activity
都将被销毁。
您始终可以在任何可访问的类上调用静态方法。只需使用MyClass.staticMethod()。请注意,如果deadInstanceOfMyClass == null,则不能以这种方式调用deadInstanceOfMyClass.staticMethod()。
是的,假设someIntValue
是静态的或硬编码的整数值。