Services Or Intent Services To Send Location Updates Every 5 Sec To Server Endlessly?
I am using GoogleCientApi object to fetch location updates and other Accelerometer sensors and send it to server every 5 sec . I want it to run in background endlessly i.e. 24*7 wi
Solution 1:
If you want to achieve this using service
publicclassMyServiceextendsService {
@Nullable@Overridepublic IBinder onBind(Intent intent)
{
returnnull;
}
@OverridepublicintonStartCommand(Intent intent, int flags, int startId)
{
ScheduledExecutorServicescheduleTaskExecutor= Executors.newScheduledThreadPool(5);
// This schedule a runnable task every x unit of time
scheduleTaskExecutor.scheduleAtFixedRate(newRunnable()
{
publicvoidrun()
{
callAPI();
}
}, 0, 10, TimeUnit.SECONDS);
return START_STICKY;
}
@OverridepublicvoidonDestroy()
{
super.onDestroy();
}
publicvoidcallAPI()
{
//Upload data to server and do your stuff
}
}
Also you need to register your service in AndroidManifest.xml
<serviceandroid:name=".service.MyService"android:enabled="true"android:exported="true"android:stopWithTask="false" />
And call your service through Activity
if (!checkServiceRunning())
{
Intent intent = newIntent(MainActivity.this, MyService.class);
startService(intent);
}
Solution 2:
This is posible with use of following component
Use Android Foreground Service for get current location while app open / close.
Note: Latest Android versions is not allowing to get current location through Backghround service.
Use Socket/Pusher for update location to user server.
Reference link
1). https://developer.android.com/guide/components/services.html
2). http://www.truiton.com/2014/10/android-foreground-service-example/
For Socket
1). https://socket.io/blog/native-socket-io-and-android/
2). https://github.com/socketio/socket.io-client-java
For Pusher
Post a Comment for "Services Or Intent Services To Send Location Updates Every 5 Sec To Server Endlessly?"