Skip to content

Commit d28bb5a

Browse files
committed
Merge pull request #76 from oney/android-download-in-background
Download file in background on Android
2 parents 290de8e + d918078 commit d28bb5a

File tree

1 file changed

+23
-16
lines changed
  • android/app/src/main/java/com/microsoft/codepush/react

1 file changed

+23
-16
lines changed

android/app/src/main/java/com/microsoft/codepush/react/CodePush.java

+23-16
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import android.content.pm.ApplicationInfo;
2424
import android.content.pm.PackageInfo;
2525
import android.content.pm.PackageManager;
26+
import android.os.AsyncTask;
2627

2728
import org.json.JSONException;
2829
import org.json.JSONObject;
@@ -307,22 +308,29 @@ public void onHostDestroy() {
307308

308309
@ReactMethod
309310
public void downloadUpdate(final ReadableMap updatePackage, final Promise promise) {
310-
try {
311-
codePushPackage.downloadPackage(applicationContext, updatePackage, new DownloadProgressCallback() {
312-
@Override
313-
public void call(DownloadProgress downloadProgress) {
314-
getReactApplicationContext()
315-
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
316-
.emit(DOWNLOAD_PROGRESS_EVENT_NAME, downloadProgress.createWritableMap());
317-
}
318-
});
311+
AsyncTask asyncTask = new AsyncTask() {
312+
@Override
313+
protected Object doInBackground(Object[] params) {
314+
try {
315+
codePushPackage.downloadPackage(applicationContext, updatePackage, new DownloadProgressCallback() {
316+
@Override
317+
public void call(DownloadProgress downloadProgress) {
318+
getReactApplicationContext()
319+
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
320+
.emit(DOWNLOAD_PROGRESS_EVENT_NAME, downloadProgress.createWritableMap());
321+
}
322+
});
319323

320-
WritableMap newPackage = codePushPackage.getPackage(CodePushUtils.tryGetString(updatePackage, codePushPackage.PACKAGE_HASH_KEY));
321-
promise.resolve(newPackage);
322-
} catch (IOException e) {
323-
e.printStackTrace();
324-
promise.reject(e.getMessage());
325-
}
324+
WritableMap newPackage = codePushPackage.getPackage(CodePushUtils.tryGetString(updatePackage, codePushPackage.PACKAGE_HASH_KEY));
325+
promise.resolve(newPackage);
326+
} catch (IOException e) {
327+
e.printStackTrace();
328+
promise.reject(e.getMessage());
329+
}
330+
return null;
331+
}
332+
};
333+
asyncTask.execute();
326334
}
327335

328336
@ReactMethod
@@ -424,4 +432,3 @@ public List<ViewManager> createViewManagers(ReactApplicationContext reactApplica
424432
}
425433

426434
}
427-

0 commit comments

Comments
 (0)