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...");
}
}
}