2

で加速度計を使用しようとしていますMonotouchが、 で問題が発生しましMotionManagerた。 更新は 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される可能性があります)、共有 UIAccelerometer(GCされることはありません)を使用していますCMMotionManager

于 2013-01-28T17:07:39.950 に答える