Могу ли я вызвать статический метод из Activity, если Activity уничтожена? - PullRequest
0 голосов
/ 12 сентября 2018

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

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018

Могу ли я вызвать статический метод из Activity, если Activity уничтожена?

Так же, как сказал SushiHangover, ответ - да.

В Xamarin.Android, если действие уничтожается из-за нехватки памяти, могу ли я по-прежнему вызывать статические методы, определенные в этом действии, из другого действия?

Обратите внимание, что Android не убивает отдельные действия, Android убивает процессы.

Процессы - это примерно приложение, и все в этом приложении - все действия, службы, класс приложения, связанные с этим конкретным приложением, в большинстве случаев одно приложение равно одному процессу.

Это означает, что если Android обрежет процесс, все действия (и все остальное, связанное с этим приложением) внутри него также умрут в результате. Android (и, в частности, ядро ​​Android, отвечающее за уничтожение процессов при достижении определенных порогов памяти) не обрезает отдельные компоненты в этом процессе / в приложении, даже не знает и не заботится о том, что они существуют.

Так что если ваше приложение будет убито через систему из-за нехватки памяти, тогда все ваши Activity будут уничтожены.

0 голосов
/ 13 сентября 2018

Да при условии, что someIntValue является статическим или жестко запрограммированным целочисленным значением.

0 голосов
/ 12 сентября 2018

Вы всегда можете вызвать статический метод для любого доступного класса в любое время.Просто используйте MyClass.staticMethod ().Обратите внимание, что вы не можете вызывать deadInstanceOfMyClass.staticMethod () таким образом, если deadInstanceOfMyClass == null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...