我正在尝试将加速度计与 Monotouch
一起使用,但 MotionManager
出现问题。
2-3 秒后停止发送更新。
这是代码。 (一切都在我的主要 UIView
的构造函数中创建)。
CMMotionManager motionManager = new CMMotionManager();
motionManager.AccelerometerUpdateInterval = 0.5;
motionManager
.StartAccelerometerUpdates(NSOperationQueue.CurrentQueue,
delegate(CMAccelerometerData data, NSError error)
{
myLabel.Text = data.Acceleration.X.ToString("0.0000");
});
使用 UIAccelerometer
,它可以正常工作:
UIAccelerometer acc = UIAccelerometer.SharedAccelerometer;
acc.UpdateInterval = 0.5;
acc.Acceleration += delegate(object sender, UIAccelerometerEventArgs e)
{
myLabel.Text = e.Acceleration.X.ToString("0.0000");
};
有什么想法吗?
最佳答案
没有足够的源代码来查看您是否保留对 CMMotionManager
实例的引用。否则 GC 可以处理它,这将停止任何更新。
相比之下,您在创建自己的 CMMotionManager
时使用的是 shared UIAccelerometer
(永远不会被 GC) >(可能是)。
关于c# - MonoTouch - 带有 MotionManager 的加速度计停止发送更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14567187/