如果连接或设备速度较慢,则Android异步任务在完成之前终止

如果连接或设备速度较慢,则Android异步任务在完成之前终止,android,android-asynctask,Android,Android Asynctask,我有一个AsyncTask,在这里我调用一个方法,从internet下载一些数据并执行某些操作 在emulator中,无论连接速度如何,此任务始终有效,但在实际设备上,如果连接或设备速度不快,此任务将自动终止。我不知道为什么,但在Android默认任务管理中可能存在某种默认超时 如何解决此问题? 如何始终强制完成任务? 这是我的密码 myTask = new AsyncTask<Void, Void, Void>() { ProgressDialog pd;

我有一个
AsyncTask
,在这里我调用一个方法,从internet下载一些数据并执行某些操作

在emulator中,无论连接速度如何,此任务始终有效,但在实际设备上,如果连接或设备速度不快,此任务将自动终止。我不知道为什么,但在Android默认任务管理中可能存在某种默认超时

如何解决此问题?

如何始终强制完成任务?

这是我的密码

myTask = new AsyncTask<Void, Void, Void>() {
            ProgressDialog pd;
            boolean correctlyInitialized = true;


            @Override
            protected void onPreExecute() {
                pd= new ProgressDialog(CatcherTree.this);


                pd.setCancelable(false);
                try {
                    pd.show();
                } catch (Error e) {
                    e.printStackTrace();
                }
            }

            @Override
            protected Void doInBackground(Void... params) {
                long t = System.currentTimeMillis();

               //this method requires time to complete
                updateAllDataSet(CatcherTree.this);

                return null;
            }

            @Override
            protected void onPostExecute(Void rate) {
                pd.dismiss();

            }
        }.execute();
myTask=newasynctask(){
进展性帕金森病;
布尔值correctlyInitialized=true;
@凌驾
受保护的void onPreExecute(){
pd=新建进度对话框(CatcherTree.this);
pd.可设置可取消(假);
试一试{
pd.show();
}捕获(错误e){
e、 printStackTrace();
}
}
@凌驾
受保护的Void doInBackground(Void…参数){
long t=System.currentTimeMillis();
//此方法需要时间才能完成
updateAllDataSet(CatcherTree.this);
返回null;
}
@凌驾
执行后受保护的作废(作废率){
pd.解散();
}
}.execute();

异步任务依赖于工作线程来完成后台工作,线程不会消失。因此,我猜测工作线程正在抛出异常并终止


查看日志以查找异常,或者更好的方法-在
updateAllDataSet()

中正确处理异常此任务将自动终止
-您是如何知道的?如果连接速度快,没有问题,如果速度慢,等待对话框将被取消,不会出现任何崩溃或错误,但操作将暂停。如果我尝试在AsyncTask之外调用该方法,则尽管速度很慢,但该过程本身不会崩溃,但是,如果连接或设备运行缓慢,则由于完成时间过长而中断。您是如何得出这一结论的?我已经调试了应用程序,没有发生连接中断或其他类型的异常。如果连接速度快,没有问题,如果速度慢,等待对话框将被取消,不会出现任何崩溃或错误,但操作将暂停。如果我尝试在AsyncTask之外调用该方法,那么不管调用的速度有多慢onPostExecute是否正确完成了任务?如果没有-那么PD是如何解散的?如果是,则表示任务已完成。如果doInbackground()中的任务在缓慢情况下未完成,则该对话框也将被取消。。。这是我的问题