void btnProgressDialog_Clicked(object sender, EventArgs e) { if (bgWorker != null && bgWorker.IsBusy == true) { Acr.UserDialogs.UserDialogs.Instance.Toast("BackgroundWorker is busy.", dismissTimer: TimeSpan.FromSeconds(5)); return; } bgWorker = new System.ComponentModel.BackgroundWorker(); bgWorker.WorkerReportsProgress = true; bgWorker.DoWork += bgWorker_DoWork; bgWorker.ProgressChanged += bgWorker_ProgressChanged; bgWorker.RunWorkerCompleted += bgWorker_RunWorkerCompleted; dialog = Acr.UserDialogs.UserDialogs.Instance.Progress(); bgWorker.RunWorkerAsync(); }
void download(UpdateInfo updateInfo) { System.ComponentModel.BackgroundWorker bgWorker = null; Acr.UserDialogs.IProgressDialog progressDialog = null; bgWorker = new System.ComponentModel.BackgroundWorker(); bgWorker.DoWork += (bgSender, bgArgs) => { var objArgs = bgArgs.Argument as object[]; UpdateInfo _updateInfo_ = objArgs[0] as UpdateInfo; new Util.DownloadUtils().DownloadFileByHttpRequest ( requestUri: _updateInfo_.Url, fileLength: _updateInfo_.FileLength, saveFileFolder: System.IO.Path.Combine(Common.StaticInfo.AndroidExternalCachePath, "UpdateAPKs"), renameDownloadFileName: string.Empty, // string.Empty 取默认文件名 backgroundWorker: bgWorker, eventArgs: bgArgs // 传入 bgArgs 参数, 在 DownloadFileByHttpRequest 返回结果 -- 下载文件的最终路径 ); System.Threading.Thread.Sleep(500); // 为显示进度 100 % }; bgWorker.RunWorkerCompleted += (bgSender, bgResult) => { progressDialog.Hide(); if (bgResult.Error != null) { Acr.UserDialogs.UserDialogs.Instance.Alert(new Acr.UserDialogs.AlertConfig() { Title = "捕获异常", Message = bgResult.Error.GetFullInfo() }); } else { try { string path = bgResult.Result as string; System.Diagnostics.Debug.WriteLine($"打开APK安装器。APK路径[{path}]"); App.AndroidIntentUtils.InstallAPK(path); } catch (Exception ex) { string msg = $"{ex.GetFullInfo()}"; System.Diagnostics.Debug.WriteLine(msg); Acr.UserDialogs.UserDialogs.Instance.Alert(new Acr.UserDialogs.AlertConfig() { Title = "捕获异常", Message = msg }); } } }; bgWorker.WorkerReportsProgress = true; bgWorker.ProgressChanged += (bgSender, bgArgs) => { if (progressDialog.IsShowing == false) { progressDialog.Show(); } progressDialog.Title = $"正在下载..."; progressDialog.PercentComplete = bgArgs.ProgressPercentage; }; progressDialog = Acr.UserDialogs.UserDialogs.Instance.Progress(); bgWorker.RunWorkerAsync(new object[] { updateInfo }); }
public static void LoadProgressDialog(string title) { currentProgressDialog = Acr.UserDialogs.UserDialogs.Instance.Loading(title, maskType: Acr.UserDialogs.MaskType.Clear); }
public static void DisposeProgressDialog() { currentProgressDialog?.Dispose(); currentProgressDialog = null; }
private void RequestDeleteSound() { loading = Acr.UserDialogs.UserDialogs.Instance.Loading("Deleting Sound. Sending Request..."); string hwid = Android.OS.Build.Serial; var prefs = PreferenceManager.GetDefaultSharedPreferences(Application.Context); ISharedPreferencesEditor editor = prefs.Edit(); String gcmID = prefs.GetString("GCMID", ""); var soundInfo = JsonConvert.SerializeObject(sound); try { if (string.IsNullOrEmpty(micId)) { loading.Hide(); Acr.UserDialogs.UserDialogs.Instance.ErrorToast("Error: Missing ID"); return; } var client = new RestClient(Shared.SERVERURL); var request = new RestRequest("resource/{id}", Method.POST); var parameters = new Dictionary <string, string>(); parameters.Add(Shared.ParamType.REQUEST_CODE, Shared.RequestCode.DELETE_SOUND.ToString()); parameters.Add(Shared.ParamType.WAVIO_ID, micId); parameters.Add(Shared.ParamType.GCM_ID, gcmID); parameters.Add(Shared.ParamType.HWID, hwid); parameters.Add(Shared.ParamType.SOUND_NAME, sound.sound_name); string requestJson = JsonConvert.SerializeObject(parameters); request.AddParameter(Shared.ParamType.REQUEST, requestJson); Console.WriteLine("Waiting for response"); client.ExecuteAsync(request, response => { ServerResponse serverResponse = JsonConvert.DeserializeObject <ServerResponse>(response.Content); if (serverResponse == null) { loading.Hide(); Acr.UserDialogs.UserDialogs.Instance.ShowError("Server error!"); return; } if (serverResponse.error == Shared.ServerResponsecode.OK) { //loading.Hide(); //Acr.UserDialogs.UserDialogs.Instance.ShowSuccess("Updated Successfully"); loading = Acr.UserDialogs.UserDialogs.Instance.Loading("Deleting Sound. Waiting For Mic...", RequestCancel); //var intent = new Intent(parent, typeof(MicSoundsActivity)); //parent.NavigateUpTo(intent); } else if (serverResponse.error == Shared.ServerResponsecode.DATABASE_ERROR) { loading.Hide(); Acr.UserDialogs.UserDialogs.Instance.ShowError("Server error!"); } else { if (serverResponse.request != Shared.RequestCode.EDIT_SOUND) { loading.Hide(); Acr.UserDialogs.UserDialogs.Instance.ShowError("Request type mismatch!"); return; } loading.Hide(); Acr.UserDialogs.UserDialogs.Instance.ShowError("Unknown error!"); } return; }); } catch (WebException ex) { string _exception = ex.ToString(); loading.Hide(); Acr.UserDialogs.UserDialogs.Instance.ShowError("Network error!"); Console.WriteLine("--->" + _exception); } }