package com.shizhefei.test.view.callback; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.widget.Toast; import com.shizhefei.task.Code; import com.shizhefei.task.ICallback; import com.shizhefei.task.TaskHelper; public class UploadCallback implements ICallback<String> { private final boolean canceledOnTouchOutside; private final TaskHelper taskHelper; private final Activity activity; private AlertDialog alertDialog; private Context context; public UploadCallback(final TaskHelper taskHelper, Activity activity, boolean canceledOnTouchOutside) { this.taskHelper = taskHelper; this.activity = activity; this.canceledOnTouchOutside = canceledOnTouchOutside; } @Override public void onPreExecute(final Object task) { context = activity.getApplicationContext(); AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setTitle("上传文件中"); builder.setMessage("请等待 "); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { taskHelper.cancel(task); } }); alertDialog = builder.create(); alertDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { taskHelper.cancel(task); } }); alertDialog.setCanceledOnTouchOutside(canceledOnTouchOutside); alertDialog.show(); } @Override public void onProgress(Object task, int percent, long current, long total, Object extraData) { alertDialog.setMessage(current + "/" + total + "\n" + "%" + percent + "\n" + extraData); } @Override public void onPostExecute(Object task, Code code, Exception exception, String success) { alertDialog.dismiss(); switch (code) { case SUCCESS: Toast.makeText(context, success, Toast.LENGTH_SHORT).show(); break; case CANCEL: Toast.makeText(context, "您取消了操作", Toast.LENGTH_SHORT).show(); break; default: break; } } }