Added stopForeground() when DownloadSerice has finished waiting for
shutdown
This commit is contained in:
parent
41f352d3f9
commit
abe1f8b07a
|
@ -98,6 +98,9 @@ public class DownloadService extends Service {
|
||||||
/** True if service is running. */
|
/** True if service is running. */
|
||||||
public static boolean isRunning = false;
|
public static boolean isRunning = false;
|
||||||
|
|
||||||
|
/** Is started when service waits for shutdown. */
|
||||||
|
private Thread waiter;
|
||||||
|
|
||||||
private final IBinder mBinder = new LocalBinder();
|
private final IBinder mBinder = new LocalBinder();
|
||||||
public class LocalBinder extends Binder {
|
public class LocalBinder extends Binder {
|
||||||
public DownloadService getService() {
|
public DownloadService getService() {
|
||||||
|
@ -107,6 +110,9 @@ public class DownloadService extends Service {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||||
|
if (waiter != null) {
|
||||||
|
waiter.interrupt();
|
||||||
|
}
|
||||||
queryDownloads();
|
queryDownloads();
|
||||||
return super.onStartCommand(intent, flags, startId);
|
return super.onStartCommand(intent, flags, startId);
|
||||||
}
|
}
|
||||||
|
@ -179,7 +185,7 @@ public class DownloadService extends Service {
|
||||||
if (AppConfig.DEBUG)
|
if (AppConfig.DEBUG)
|
||||||
Log.d(TAG, "Initiating shutdown");
|
Log.d(TAG, "Initiating shutdown");
|
||||||
// Wait until PoolExecutor is done
|
// Wait until PoolExecutor is done
|
||||||
Thread waiter = new Thread() {
|
waiter = new Thread() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
syncExecutor.shutdown();
|
syncExecutor.shutdown();
|
||||||
|
@ -192,10 +198,12 @@ public class DownloadService extends Service {
|
||||||
Log.d(TAG,
|
Log.d(TAG,
|
||||||
"Stopping waiting for termination; Result : "
|
"Stopping waiting for termination; Result : "
|
||||||
+ b);
|
+ b);
|
||||||
|
stopForeground(true);
|
||||||
stopSelf();
|
stopSelf();
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
Log.i(TAG, "Service shutdown was interrupted.");
|
||||||
|
shutdownInitiated = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue