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

时间:2018-09-12 19:38:58

标签: android android-activity xamarin.android static-methods activity-lifecycle

Xamarin.Android 中,如果 Activity 由于内存不足而被杀死,我仍然可以从另一个 Activity 中调用该 Activity 中定义的静态方法吗? em>活动。例如:

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

  

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

就像SushiHangover所说的那样,答案是肯定的。

  

在Xamarin.Android中,如果某个活动由于内存不足而被杀死,我仍然可以从另一个活动中调用该活动中定义的静态方法吗?

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

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

这意味着,如果Android修剪了一个进程,其内部的所有活动(以及与该应用程序相关的所有其他事物)也将因此而死亡。 Android(尤其是Android Kernel,当达到一定的内存阈值时负责杀死进程)不会修剪该进程/该应用程序中的单个组件,甚至不知道或不在乎它们的存在。

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

答案 2 :(得分:0)

,假设someIntValue是静态值或硬编码的Integer值。