我有一个应用程序,我检查每十五分钟是否有互联网。
如果有互联网,我会启动一项意向服务,将数据从数据库上传到服务器。
@Override
public void onReceive(Context context, Intent intent) {
if(CommonClass.isNetworkAvailable(context)) {
Intent startService = new Intent(context, VitalUploadService.class);
startWakefulService(context, startService);
} else {
Toast.makeText(context,"Please Turn on Internet to save data to cloud",Toast.LENGTH_LONG).show();
}
}
我的问题是,如果数据上传延长了十五分钟,那么我该如何阻止代码生成另一个意图服务以发送数据。 我正在使用 wakefulBroadCastReceiver。
答案 0 :(得分:0)
简单的解决方案(在我看来)是使用一些golbal / public flag:
1-你在应用程序中声明一个变量(或者在其他可以轻松访问的地方)。
2-将其初始化为false(标志变量是我样本中的布尔值)
3-并在您的代码中:
public Boolean _bIsServiceLanched = false;//Flag variable declaration in application class for example
if(CommonClass.isNetworkAvailable(context)) {
if_b(getApplicationContext()._bIsServiceLanched == false) {
getApplicationContext()._bIsServiceLanched = true;
Intent startService = new Intent(context, VitalUploadService.class);
startWakefulService(context, startService);
}
} else {
Toast.makeText(context,"Please Turn on Internet to save data to cloud",Toast.LENGTH_LONG).show();
}