我的应用中有一个页面,我需要使用加速计读数。所以,我有一个类型acc
的变量Accelerometer
,它对应于页面的类是静态的,我在类的构造函数中有以下语句
acc = new Accelerometer();
acc.Start();
acc.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(Acc_Reader);
Acc_Reader
通过接收加速度计读数来更新变量。
我需要能够在后台运行加速度计的情况下导航到其他页面。但是,当我回到此页面时,由Acc_Reader
更新的变量开始以大约应更新速率的两倍更新。只要您不导航到其他页面并返回此页面,它就可以正常工作。所以,我猜它与这个类的构造函数(因为它再次被调用)有关,它包含上面的代码。
我该如何解决这个问题?
答案 0 :(得分:0)
在初始化之前处置acc
变量有效。即
if (acc != null) acc.Dispose();
acc = new Accelerometer();
acc.Start();
acc.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(Acc_Reader);
所以,我认为这样你就可以在创建一个新实例之前清理已经运行的实例。