1

因此,我正在使用 Asynctask 加载一个 URL,并且在下载开始之前我已经处理了所有可能的连接问题,但是现在我的应用程序在下载时从数据切换到 wifi 时关闭。所以问题是:

我是否必须在服务上执行 Asynctask,还是有办法暂停它并在有可用连接时恢复?我已经有一个接收器,它在连接后立即开始下载:

    if (isOnline()) {
        getData();
    } else {
        IntentFilter intentFilter = new IntentFilter(
                "android.net.conn.CONNECTIVITY_CHANGE");
        registerReceiver(new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                // TODO Auto-generated method stub
                if (isOnline()) {
                    unregisterReceiver(this);
                    getData();
                }
            }
        }, intentFilter);
    }

但是在连接可用后如何恢复 Asynctask?

4

1 回答 1

0

这绝对是你要在后台做的一项服务。我可以建议查看IntentService类的文档吗?通过在服务中执行此操作,您不必为确保清理 Activity 中的 AsyncTask 内容而烦恼。并且该服务将继续在后台运行,直到下载完成。

于 2011-10-19T04:59:41.830 回答