如果 Activity 被销毁,我可以从 Activity 调用静态方法吗?

Can I call static method from Activity if Activity is destroyed?

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?
}

您随时可以在任何可访问的 class 上调用静态方法。只需使用 MyClass.staticMethod()。请注意,如果 deadInstanceOfMyClass == null,则不能以这种方式调用 deadInstanceOfMyClass.staticMethod()。

Can I call static method from Activity if Activity is destroyed?

正如SushiHangover所说,答案是肯定的

In Xamarin.Android if an Activity gets killed because of low memory can I still call static methods defined in that Activity from another Activity?

请注意 Android 不会终止单个活动,Android 会终止进程。

进程大致是一个应用程序和该应用程序中的所有内容 - 与该特定应用程序相关的所有活动、服务、应用程序 class,在大多数情况下,一个应用程序等于一个进程。

这意味着,如果 Android trim 处理一个进程,则其中的所有活动(以及与该应用程序相关的所有其他内容)也将因此终止。 Android(特别是 Android 内核,它负责在达到特定内存阈值时终止进程)不会 trim 该进程/该应用程序中的单个组件,它不会甚至不知道或关心它们的存在。

因此,如果您的应用程序由于内存不足而被系统杀死,那么,您的所有 Activity 都将被销毁。

,假设 someIntValue 是静态值或硬编码整数值。