2

我正在尝试将加速度计MonotouchMotionManager. 更新将在 2-3 秒后停止发送。

这是代码。(一切都是在我的 main 的构造函数中创建的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"); 
};

任何的想法?

4

1 回答 1

1

没有足够的源代码来查看您是否保留对CMMotionManager实例的引用。否则 GC 可以处理它,这将停止任何更新。

相比之下,您在创建自己的(可能是)时使用共享的(永远不会被 GC'ed)。 UIAccelerometerCMMotionManager

于 2013-01-28T17:07:39.950 回答