我是 MVVMCross 的新手。我需要获取有关我的 android 应用程序是否在后台运行的详细信息。为了实现这一点,我尝试使用带有 MVXApplication 的 IActivityLifecycleCallbacks 来实现。但我收到以下错误“实现 Android.Runtime.IJavaObject 但不继承 Java.Lang.Object 或 Java.Lang.Throwable。不支持。”。那么任何人都可以建议我如何使用 MVVM cross 来实现我的要求。
问问题
629 次
1 回答
0
您可以在 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 如果它涵盖了所有情况,但我在我的项目中使用它,并且在我测试过的场景中它就像一个魅力
HIH
于 2018-03-16T13:22:02.153 回答