如何在 MVVMCross Xamarin.iOS 中计算 App Idle Time?
How to calculate App Idle Time in MVVMCross Xamarin.iOS?
我正在使用 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 ();
}
}
你离答案很近了。
在默认的 MvvMCross 项目中,有一个 Main.cs,其中包含一个 Application
class.
您只需将下一行中的 null 替换为您的 UIApplication 的子 class 名称
UIApplication.Main(args, null, "AppDelegate");
例如,如果您的 class 名称是从 UIApplication 继承的 MyApplication,那么它应该像
UIApplication.Main(args, "MyApplication", "AppDelegate");
并添加一个 class 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 在 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 ();
}
}
你离答案很近了。
在默认的 MvvMCross 项目中,有一个 Main.cs,其中包含一个 Application
class.
您只需将下一行中的 null 替换为您的 UIApplication 的子 class 名称
UIApplication.Main(args, null, "AppDelegate");
例如,如果您的 class 名称是从 UIApplication 继承的 MyApplication,那么它应该像
UIApplication.Main(args, "MyApplication", "AppDelegate");
并添加一个 class 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();
}
}
}