android中的AsnycTask[英] AsnycTask in android

本文是小编为大家收集整理的关于android中的AsnycTask的处理方法,想解了android中的AsnycTask的问题怎么解决?android中的AsnycTask问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我已经使用 AsnycTask 从 Sql Server 获取数据.
我在方法下面创建 AsnycTask 对象:

new MyAsnycTask().execute(new 字符串[]{"......"});

我的问题是:
如何在 AsnycTask 类中实现 OnCancel() ,这样我们就杀死了当前的 AsnycTask 对象,因为我们有多次创建 AsnycTas 的对象.

推荐答案

在每个 AsyncTask 中,你实现了 onCancelled 方法:

@Overrideprotected void onCancelled() {/*释放你的资源,比如关闭数据库连接,中止下载进度等*/}


现在,在 AsyncTask 上调用 cancel() 将导致在 doInBackground() 完成时执行 onCancelled() 而不是 onPostExecute().请注意,onCancel 不会立即被调用(如上所述,它是在 doInBackground 完成时调用的),而是设置了一个标志,可以通过 yourAsyncTask.isCancelled() 访问该标志.这就是为什么在你的 doInBackground 方法中定期检查这个标志是正确的做法(并且被 Android 开发指南推荐),通常是在一个循环中:

@Override受保护 Object doInBackground(Object... x) {while (!isCancelled()) {//做你的工作return workProcessingResult;}返回 null;}


进一步阅读这里[^]

本文地址:https://www.itbaoku.cn/post/1355992.html