MonoTouch - 带有 MotionManager 的加速度计停止发送更新
本文关键字:更新 加速度计 带有 MotionManager MonoTouch | 更新日期: 2023-09-27 17:56:17
我正在尝试将加速度计与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
(可能是)时使用共享UIAccelerometer
(永远不会是GC'ed)。