我正在使用BlackBerry App,当电池电量达到10%时向服务器发送消息。这是通过调用getBatteryStatus()
方法在getBatteryStatus()
执行以下操作的构造实施:当电池电量达到10%时开始/取消计时器
public static void getBatteryStatus() {
timerBattery = new Timer();
taskBattery = new TimerTask() {
public void run() {
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
if (DeviceInfo.getBatteryLevel()==10) {
try{
String freeText="Battery level at 10%";
sendBatteryStatus(freeText);
}catch(Exception e){}
}
}
});
}
};
timerBattery.scheduleAtFixedRate(taskBattery, 0, 20000);
}
的sendBatteryStatus
将消息发送到服务器,并取消定时器。这实际上已经根据请求将消息一次发送到服务器。
但是,如果用户开始使用App运行它的手机充电(如果没有再次调用构造函数),该怎么办?计时器如何重启?我将如何能够再次将消息发送到服务器?
什么来防止在10%,在效果发送消息只有一次,随后的消息被再次发送当电池电量在接下来的时间10%发送电池电量的多个消息的最佳机制是什么?
如果在发送消息后我不取消计时器,则会向服务器发送多次消息。