package com.ved.musicmapapp.services; import com.ved.musicmapapp.providers.PostSongToServerTask; import android.app.ActivityManager; import android.app.AlarmManager; import android.app.IntentService; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; import android.os.AsyncTask; import android.os.IBinder; import android.util.Log; public class SongPostingService extends IntentService { public SongPostingService() { super(""); } public SongPostingService(String name) { super(name); } boolean isServiceSyncing = false; PostSongToServerTask postSongsTask; StartSyncTask task; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); Log.e("check","//////////////////////In song posting webservice//////////////////////"); } public void startSyncing() { Log.e("check","IN start syncing,,,"); if (isServiceSyncing) { return; } postSongsTask = new PostSongToServerTask(this,true) { @Override protected void onPreExecute() { isServiceSyncing = true; super.onPreExecute(); Log.e("check","/////////////////In song posting webservice start syncing//////////////////////////"); } @Override protected void onPostExecute(Boolean result) { super.onPostExecute(result); Log.e("check","/////////////////In song posting webservice end syncing//////////////////////////"); isServiceSyncing = false; stopSelf(); quit(); } @Override protected void onCancelled(Boolean result) { super.onCancelled(result); Log.e("check","/////////////////In song posting webservice cancelled syncing//////////////////////////"); isServiceSyncing = false; } }; postSongsTask.execute(); } @Override protected void onHandleIntent(Intent intent) { Log.e("check","In song posting webservice onHandleIntent"); if (null != postSongsTask) { postSongsTask.cancel(true); } if(task != null){ task.cancel(true); task = null; } task = new StartSyncTask(); task.execute(); } @SuppressWarnings("deprecation") public void quit() { try{ if (!getPackageName().equalsIgnoreCase(((ActivityManager)getSystemService(ACTIVITY_SERVICE)).getRunningTasks(1).get(0).topActivity.getPackageName())) { int pid = android.os.Process.myPid(); android.os.Process.killProcess(pid); System.exit(0); } } catch(Exception e){ e.printStackTrace(); } } private class StartSyncTask extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... params) { startSyncing(); return null; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); Log.e("check","In post execute of service..."); } } }