Как работать с IActivityLifecycleCallbacks с MVVMCross?
Я новичок в MVVMCross. Мне нужно получить подробную информацию о том, работает ли мое приложение для Android в фоновом режиме или нет. Чтобы достичь этого, я пытаюсь реализовать с IActivityLifecycleCallbacks с MVXApplication. Но я получаю следующее сообщение об ошибке "реализует Android.Runtime.IJavaObject, но не наследует Java.Lang.Object или Java.Lang.Throwable. Это не поддерживается". Так кто-нибудь может подсказать мне, как выполнить мое требование с MVVM кросс.
1 ответ
Вы можете реализовать этот интерфейс в своем основном приложении вашего проекта Android, а в OnTrimMemory, сравнивая уровень с TrimMemory.UiHidden, узнать, работает ли приложение в фоновом режиме или нет.
public class MainApplication : Application, Application.IActivityLifecycleCallbacks
{
...
public static bool IsApplicationInForeground { get; private set; }
public override void OnCreate()
{
base.OnCreate();
this.RegisterActivityLifecycleCallbacks(this);
}
public override void OnTerminate()
{
base.OnTerminate();
this.UnregisterActivityLifecycleCallbacks(this);
}
public virtual void OnActivityResumed(Activity activity)
{
IsApplicationInForeground = true;
}
public override void OnTrimMemory(TrimMemory level)
{
IsApplicationInForeground &= level != TrimMemory.UiHidden;
base.OnTrimMemory(level);
}
...
}
IDK, если он охватывает все случаи, но я использую его в своих проектах, и это работает как очарование в сценариях, которые я тестировал
Е.И.В.