Android 异步任务是否能够减慢finish()进程
我有一堆代码是通过处理程序执行的,但情况发生了变化,我最终改用了AsyncTask 现在突然,当我调用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
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在构造函数内部初始化静态变量是一种不好的做法,因为这意味着变量与类的实例紧密耦合,而不是与类本身紧密耦合。我不确定我是否理解你的论点。