Vous devez utiliser un AlarmManager pour activer une attente d'intention (par l'intermédiaire d'un récepteur de radiodiffusion) pour le lancement d'un service d'arrière-plan.
privatestaticfinalString NAME ="com.commonsware.cwac.wakeful.WakefulIntentService";privatestaticvolatilePowerManager.WakeLock lockStatic =null;privatestaticPowerManager.WakeLocklock;//Needed since network will to work when device is sleeping.synchronizedprivatestaticPowerManager.WakeLock getLock(Context context){if(lockStatic ==null){PowerManager mgr =(PowerManager) context.getSystemService(Context.POWER_SERVICE);
lockStatic = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, NAME);
lockStatic.setReferenceCounted(true);}return(lockStatic);}}
Le Service d'arrière-plan. Ici, vous remarquerez 2 points importants
WakeLock, pour vous assurer que votre appareil se réveille et utilise le réseau en arrière-plan
Un hack pour LocationManager de travail. J'ai eu de débogage pour environ 2 semaines, croyez-moi, vous en avez besoin. requestLocationUpdates et getLastKnownLocation sera tout simplement pas donner votre position lorsque vous le souhaitez. D'où la AlarmManager (qui fonctionne beaucoup mieux que java TimerTask chose).
Tout cela fonctionne en production de l'application sur le play store.
publicclassUpdateCustomerRequestsextendsIntentServiceimplementsLocationListener{privatestaticContext mainContext;publicUpdateCustomerRequests(){super("UpdateCustomerRequests");
mHandler =newHandler();
me =this;}publicstaticUpdateCustomerRequests getService(){if(me ==null)
me =newUpdateCustomerRequests();return me;}@Overridefinalprotectedvoid onHandleIntent(Intent intent){
mainContext = getApplicationContext();Location myLocation;if(HomeScreen.getLocationManager()!=null){//this is needed to trigger a background location change. Since LocationManager does not work on Samsung phones. Its a hack needed.HomeScreen.getLocationManager().requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,newLocationListener(){@Overridepublicvoid onStatusChanged(String provider,int status,Bundle extras){}@Overridepublicvoid onProviderEnabled(String provider){}@Overridepublicvoid onProviderDisabled(String provider){}@Overridepublicvoid onLocationChanged(finalLocation location){}});
myLocation =HomeScreen.getLocationManager().getLastKnownLocation(LocationManager.NETWORK_PROVIDER);if(myLocation !=null)
onLocationChanged(myLocation);else{God.notifications.setSpeedNotification();}}elseLog.e("Taxeeta:PullPendingRequets","Not activated");}@Overridepublicvoid onLocationChanged(finalLocation location){//Do your background stuff}}
Vous pouvez utiliser un Service qui fonctionne toujours en arrière-plan..et dans le service d'arrière-plan vous pouvez obtenir le courant de la latitude et de la longitude et vous pouvez convertir ces lats et longs en bonne position à l'aide du Android geocoder de classe...
vérifiez le prédécesseur lien:
Vous devez utiliser un AlarmManager pour activer une attente d'intention (par l'intermédiaire d'un récepteur de radiodiffusion) pour le lancement d'un service d'arrière-plan.
Un exemple de code pour vous
Dans votre MainActivity
AlarmReceiver classe
Le BroadcastReceiver
Le Service d'arrière-plan. Ici, vous remarquerez 2 points importants
Tout cela fonctionne en production de l'application sur le play store.
Enfin, n'oubliez pas votre manifeste chose.
OriginalL'auteur Siddharth
Vous avez besoin d'utiliser le concept de Service au lieu de l'activité.
http://developer.android.com/guide/components/services.html
Ici est un bon exemple:
Service d'arrière-plan doit envoyer la position GPS sur le serveur
OriginalL'auteur Jehy
La chose qui vous permettra de faire de l'Activité peut être réalisée dans le service de..dans le onStart() de Service....
OriginalL'auteur Karan_Rana
Vous pouvez utiliser un Service qui fonctionne toujours en arrière-plan..et dans le service d'arrière-plan vous pouvez obtenir le courant de la latitude et de la longitude et vous pouvez convertir ces lats et longs en bonne position à l'aide du Android geocoder de classe...
vérifiez le prédécesseur lien:
http://www.codeproject.com/KB/android/GPSLocator.aspx
OriginalL'auteur Karan_Rana