【发布时间】:2013-11-15 17:00:55
【问题描述】:
有谁知道为什么 doInBackground 需要很长时间才能启动?这是一个例子:
runDoInBackground(){
print("starting task");
new MyAsyncTask(someObject,otherObject).execute((Void)null);
}
private class MyAsyncTask extends<Void,Void,Integer>{
SomeObject someObject;
OtherObject otherObject;
public MyAsyncTask(SomeObject someObject, OtherObject otherObject){
this.someObject=someObject;
this.otherObject = otherObject;
}
@Override
protected Integer doInBackground(Void... params) {
print("start background run")
... work ... get from server ...
}
}
如果运行缓慢的原因是其他干扰线程(我对此表示怀疑),我该如何给这个最高优先级?
【问题讨论】:
-
你怎么知道它很慢?
-
您在哪里看到“打印”语句?我实际上正在使用 system.out.println 进行日志记录,只是为了看看需要多长时间。在第一个 print 语句之后,需要很长时间才能看到第二个 print 语句。
-
时差是多少?
-
所有异步任务默认使用相同的执行器 (developer.android.com/reference/android/os/…),如果有任务需要时间
-
private class MyAsyncTask extends<Void,Void,Integer>{... 这不应该是private class MyAsyncTask extends AsyncTask<Void,Void,Integer>{吗?
标签: java android multithreading android-asynctask