我在这里看到了Commonwares LocationPoller演示 github.com/commonsguy/cwac-locpoll /
这里LocationReceiver
我正在检查位置是否在指定区域内。
如果不在该区域,我会向电话号码发送短信(SMS)。
但它是连续发送短信(SMS),因为它在每个特定时间间隔收到新位置。所以我定义了一个类变量flag
= 0(初始)
public class LocationReceiver extends BroadcastReceiver {
int flag=0;
public void onReceive(Context context, Intent intent) {
............
if( flag==0) //center of campus
{
checkArea(loc,"500","22.599669","72.820473","5556","Your ward is out of College campus");
Toast.makeText(context, "You Have Moved out",Toast.LENGTH_SHORT);
flag=1;
}
}
}
但它无法正常工作,它仍然会不断发送短信。 我该怎么办 ?
答案 0 :(得分:2)
使用SharedPreferences发送消息时保存unix时间戳,以便下次触发广播时检查是否存在所述时间戳。如果时间戳不存在或者足够老(实际时间 - 保存的时间戳> =您定义的某些Threshshold),则只发送消息,在发送消息时更新或创建时间戳。
答案 1 :(得分:1)
如果您必须发送短信,则可以使用持久性存储来存储状态,并且每次收到存储通知检查。