在我的应用程序中,我有一个UI类的东西,其名称是“SettingActivity”。为什么AsyncTask在应用程序的主线程中运行?
然后为了在后台做一些工作,我将这个UI类(SettingActivity)绑定到一个Service。 该服务中有两个预定义的方法(在.aidl文件中定义),一个是startTask(),另一个是stopTask()。
在startTask()中,我调用了一个AsyncTask。但是当我检查这个AsyncTask的Looper的名字时。这是“主要”。在我看来,AsyncTask应该启动除主线程以外的另一个线程。
那么有人知道为什么会发生这种情况?
代码如下:
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.d(TAG, "onPreExecute "+Looper.myLooper().getThread().getName());
}
Then I will get main as the output.
如果您可以发布一些示例代码,这将是有帮助的。 – 2011-02-07 07:06:10