首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MonoTouch -带有MotionManager的加速度计停止发送更新

MonoTouch -带有MotionManager的加速度计停止发送更新
EN

Stack Overflow用户
提问于 2013-01-28 17:01:07
回答 1查看 377关注 0票数 2

我试图在Monotouch中使用加速度计,但是MotionManager有问题。更新将在2-3秒后停止发送。

这是密码。(所有内容都是在主UIView的构造函数中创建的)。

代码语言:javascript
复制
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中,它正在工作:

代码语言:javascript
复制
UIAccelerometer acc = UIAccelerometer.SharedAccelerometer;
acc.UpdateInterval = 0.5;
acc.Acceleration += delegate(object sender, UIAccelerometerEventArgs e) 
{
    myLabel.Text = e.Acceleration.X.ToString("0.0000"); 
};

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-28 17:07:39

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

相比之下,您使用的是共享 UIAccelerometer (它永远不会被GC‘’ed),而您正在创建自己的CMMotionManager (可能是这样)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14567187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档