2016-04-07 12 views
0

Ich habe eine App, in der ich überprüfe, ob es Internet alle fünfzehn Minuten gibt.android, wie App von einem anderen intentservice zu beschränken

Wenn es Internet gibt, dann starte ich einen Intent-Dienst, um Daten von der Datenbank zum Server hochzuladen.

 @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(); 
     } 
    } 

Meine Frage ist, ob die Daten-Upload ist dann 15 Minuten verlängert, wie kann ich den Code von der Generierung einer anderen Absicht Dienst beenden die Daten zu senden. Ich verwende wakefulBroadCastReceiver.

+0

halten boolean in gemeinsamen Vorlieben, wenn Sie dann Intent-Dienst starten check boolean für den Upload des Datenstatus – USKMobility

+0

danke @USKMobility –

Antwort

0

Die einfache Lösung (meiner Meinung nach) ist eine golbal/public-Flag zu verwenden:

1- Sie eine Variable in der Anwendung erklären (oder in anderem Ort, den Sie leicht zugreifen können).

2- es auf false initialisieren (dem Flag-Variable ist ein boolean in meinem Beispiel)

3- und im Code:

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(); 
} 
Verwandte Themen