, , - , ( IntentService, , ).
, , Activity...
public class MyMainActivity extends Activity {
FileDownloader fdl = null;
...
private class FileDownloader extends AsyncTask<String, String, Boolean> {
private MyMainActivity parentActivity = null;
protected void setParentActivity(MyMainActivity parentActivity) {
this.parentActivity = parentActivity;
}
public FileDownloader(MyMainActivity parentActivity) {
this.parentActivity = parentActivity;
}
}
}
onRetainNonConfigurationInstance() AsyncTask.
Override
public Object onRetainNonConfigurationInstance() {
if (fdl != null)
fdl.setParentActivity(null);
return(fdl);
}
doDownload(), onResume(), a Boolean, downloadComplete, . Boolean onPostExecute(...) FileDownloader.
private void doDownload() {
fdl = (FileDownloader)getLastNonConfigurationInstance();
if (fdl != null)
fdl.setParentActivity(this);
else {
String[] downloadFileList = this.getResources().getStringArray(R.array.full_download_file_list);
fdl = new FileDownloader(this);
fdl.execute(downloadFileList);
}
}