Stop progress updates when in background
This commit is contained in:
parent
7c43b91502
commit
767f1a6866
@ -210,9 +210,20 @@ public class AppDetails extends ListActivity {
|
|||||||
reset();
|
reset();
|
||||||
viewResetRequired = false;
|
viewResetRequired = false;
|
||||||
}
|
}
|
||||||
|
if (download != null && downloadHandler != null) {
|
||||||
|
downloadHandler.startUpdates();
|
||||||
|
}
|
||||||
super.onResume();
|
super.onResume();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPause() {
|
||||||
|
if (downloadHandler != null) {
|
||||||
|
downloadHandler.stopUpdates();
|
||||||
|
}
|
||||||
|
super.onPause();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStop() {
|
protected void onStop() {
|
||||||
db.close();
|
db.close();
|
||||||
@ -243,7 +254,7 @@ public class AppDetails extends ListActivity {
|
|||||||
// there.
|
// there.
|
||||||
private void copyState(AppDetails old) {
|
private void copyState(AppDetails old) {
|
||||||
download = old.download;
|
download = old.download;
|
||||||
if (download != null && download.isAlive()) {
|
if (download != null) {
|
||||||
downloadHandler = new DownloadHandler();
|
downloadHandler = new DownloadHandler();
|
||||||
}
|
}
|
||||||
ApkListAdapter oldAdapter = (ApkListAdapter)old.getListAdapter();
|
ApkListAdapter oldAdapter = (ApkListAdapter)old.getListAdapter();
|
||||||
@ -435,8 +446,8 @@ public class AppDetails extends ListActivity {
|
|||||||
alert.show();
|
alert.show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
downloadHandler = new DownloadHandler();
|
|
||||||
download = new Downloader(curapk);
|
download = new Downloader(curapk);
|
||||||
|
downloadHandler = new DownloadHandler();
|
||||||
download.start();
|
download.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -490,9 +501,10 @@ public class AppDetails extends ListActivity {
|
|||||||
// Handler used to update the progress dialog while downloading.
|
// Handler used to update the progress dialog while downloading.
|
||||||
private class DownloadHandler extends Handler {
|
private class DownloadHandler extends Handler {
|
||||||
private ProgressDialog pd;
|
private ProgressDialog pd;
|
||||||
|
boolean updating;
|
||||||
|
|
||||||
public DownloadHandler() {
|
public DownloadHandler() {
|
||||||
sendEmptyMessage(0); // Start updating progress
|
startUpdates();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean updateProgress() {
|
public boolean updateProgress() {
|
||||||
@ -532,6 +544,18 @@ public class AppDetails extends ListActivity {
|
|||||||
return finished;
|
return finished;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void startUpdates() {
|
||||||
|
if (!updating) {
|
||||||
|
updating = true;
|
||||||
|
sendEmptyMessage(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void stopUpdates() {
|
||||||
|
updating = false;
|
||||||
|
removeMessages(0);
|
||||||
|
}
|
||||||
|
|
||||||
public void destroy() {
|
public void destroy() {
|
||||||
// The dialog can't be dismissed when it's not displayed,
|
// The dialog can't be dismissed when it's not displayed,
|
||||||
// so do it when the activity is being destroyed.
|
// so do it when the activity is being destroyed.
|
||||||
@ -541,7 +565,7 @@ public class AppDetails extends ListActivity {
|
|||||||
}
|
}
|
||||||
// Cancel any scheduled updates so that we don't
|
// Cancel any scheduled updates so that we don't
|
||||||
// accidentally recreate the progress dialog.
|
// accidentally recreate the progress dialog.
|
||||||
removeMessages(0);
|
stopUpdates();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Repeatedly run updateProgress() until it's finished.
|
// Repeatedly run updateProgress() until it's finished.
|
||||||
@ -566,6 +590,7 @@ public class AppDetails extends ListActivity {
|
|||||||
File file = new File(download.localFile());
|
File file = new File(download.localFile());
|
||||||
Log.d("FDroid", "Cleaning up: " + file);
|
Log.d("FDroid", "Cleaning up: " + file);
|
||||||
file.delete();
|
file.delete();
|
||||||
|
download = null;
|
||||||
}
|
}
|
||||||
viewResetRequired = true;
|
viewResetRequired = true;
|
||||||
break;
|
break;
|
||||||
|
@ -205,6 +205,7 @@ public class Downloader extends Thread {
|
|||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
status = Status.DONE;
|
status = Status.DONE;
|
||||||
}
|
}
|
||||||
|
Log.d("FDroid", "Download finished: " + apk_file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user