如何停止正在运行的AsyncTask

本文介绍了一个使用Java实现的任务执行类MyTask,它包含任务执行、进度显示及取消逻辑,通过AsyncTask框架实现了任务异步执行,并且通过ProgressDialog进行任务进度的实时展示,确保用户体验良好。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<code><span class="pln"><span style="font-size:12px;"><span style="font-family: arial, helvetica, sans-serif;">public class MyTask extends AsyncTask<Void, Void, Void> {



    private volatile boolean running = true;

    private final ProgressDialog progressDialog;



    public MyTask(Context ctx) {

        progressDialog = gimmeOne(ctx);



        progressDialog.setCancelable(true);

        progressDialog.setOnCancelListener(new OnCancelListener() {

            @Override

            public void onCancel(DialogInterface dialog) {

                // actually could set running = false; right here, but I'll

                // stick to contract.

                cancel(true);

            }

        });



    }



    @Override

    protected void onPreExecute() {

        progressDialog.show();

    }



    @Override

    protected void onCancelled() {

        running = false;

    }



    @Override

    protected Void doInBackground(Void... params) {



        while (running) {

            // does the hard work

        }

        return null;

    }



    // ...



}</span></span></span></code>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值