【问题标题】:How to calculate App Idle Time in MVVMCross Xamarin.iOS?如何计算 MVVMCross Xamarin.iOS 中的应用空闲时间?
【发布时间】:2016-03-10 07:41:45
【问题描述】:

我正在使用 MVVMCross 在 Xamarin.iOS 中开发 iOS 通用应用程序。我想计算App Idle时间我发现了以下有用的帮助

iOS:Convert ObjC code to C#, How to know the time app has been idle

但是当我尝试将它与 MVVMCross 一起使用时会出现一个问题,那就是 MvvmCross中的AppDelegate.cs继承自MvxApplicationDelegate.cs

我无法覆盖 AppDelegate 中的以下事件,因为它没有覆盖 UIApplication

public override void SendEvent (UIEvent uievent)
    {
        base.SendEvent (uievent);
        var allTouches = uievent.AllTouches;
        if (allTouches.Count > 0) {
            var phase = ((UITouch)allTouches.AnyObject).Phase;
            if (phase == UITouchPhase.Began || phase == UITouchPhase.Ended)
                ResetIdleTimer ();
        }
    }

【问题讨论】:

    标签: c# xamarin mvvmcross


    【解决方案1】:

    你已经接近答案了。

    在默认的 MvvMCross 项目中,有一个 Main.cs,其中包含一个 Application 类。

    你只需要用你的 UIApplication 的子类名替换下一行中的 null

    UIApplication.Main(args, null, "AppDelegate");
    

    例如,如果你的类名是 MyApplication,它是从 UIApplication 继承的,那么它应该是这样的

    UIApplication.Main(args, "MyApplication", "AppDelegate");
    

    并添加一个类MyApplication

    [Register("MyApplication")]
    public class MyApplication : UIApplication
    {
        public override void SendEvent(UIEvent uievent)
        {
            base.SendEvent(uievent);
            var allTouches = uievent.AllTouches;
            if (allTouches.Count > 0)
            {
                var phase = ((UITouch)allTouches.AnyObject).Phase;
                if (phase == UITouchPhase.Began || phase == UITouchPhase.Ended)
                    ResetIdleTimer();
            }
        }
    }
    

    【讨论】:

    • 所以我们在其中编写了 mvvmcross AppDelegateClass 的 FinishLaunching 代码,我们在其中设置了我们的 App Start public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    • 你不会改变它。这个逻辑保持原样 - 在AppDelegate中。
    • 是的,您似乎是对的 :) 抱歉,您的回答是否定的。让我检查一下
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多