Android 异步任务是否能够减慢finish()进程

Android 异步任务是否能够减慢finish()进程,android,android-asynctask,Android,Android Asynctask,我有一堆代码是通过处理程序执行的,但情况发生了变化,我最终改用了AsyncTask 现在突然,当我调用finish()时,实际完成活动需要额外的10秒钟 为什么会这样 我的异步任务只覆盖了onPostExecute和doInBackground是,因此您可以做一件事: 1st) Make an class with context in public static variable like: Mycommons.java public class MyCommons { public s

我有一堆代码是通过处理程序执行的,但情况发生了变化,我最终改用了AsyncTask

现在突然,当我调用
finish()
时,实际完成活动需要额外的10秒钟

为什么会这样


我的异步任务只覆盖了
onPostExecute
doInBackground

是,因此您可以做一件事:

1st) Make an class with context in public static variable like:

Mycommons.java

public class MyCommons
{

public static Context context;

}

2nd) Pass the context of Activity to the following public context

class MyActivity extends Activity
{
....

MyCommons.context =  MyActivity.this;
.....
}

3rd) Create one service class 

Myservice extends Asynctask
{

 ondoinbackground()
{
  // sleep for time delay 
}     

onpostexcute()
{
MyCommons.context.finish();
}
}

希望它会有所帮助

您确认在运行
AsyncTask
时(而不是之后)实际调用了
finish()
吗?@AlexLockwood它是在异步任务完成后调用的。@AlexLockwood另外,我说的是Activity.finish(),不是异步任务的完成让我看看我是否理解正确。基本上,您要做的是,(1)启动异步任务,(2)当异步任务完成时,您调用
finish()
,(3)10秒后活动完成?如果没有更多的细节和/或代码,就很难理解这个问题。为什么要将
上下文
设置为静态?@AlexLockwood becz作为其单独的公用文件,并与所有类共享它的值,正如您在“还创建Myservice”中看到的,该类中还使用另一个单独的类和上下文,因此为了共享它,我创建了它static在构造函数内部初始化静态变量是一种不好的做法,因为这意味着变量与类的实例紧密耦合,而不是与类本身紧密耦合。我不确定我是否理解你的论点。