相关疑难解决方法(0)

Android SDK AsyncTask doInBackground未运行(子类)

截至2012年2月15日,我还没有找到一个很好的解释,也不知道为什么这不起作用.最接近解决方案的是使用传统的Thread方法,但为什么要包含一个在Android SDK中没有(似乎)工作的类?

Evenin'SO!

我有一个AsyncTask子类:

// ParseListener had a callback which was called when an item was parsed in a
// RSS-xml, but as stated further down it is not used at all right now.
private class xmlAsync extends AsyncTask<String, RSSItem, Void> implements ParseListener
Run Code Online (Sandbox Code Playgroud)

这是这样执行的:

xmlAsync xmlThread = new xmlAsync();

xmlThread.execute("http://www.nothing.com");
Run Code Online (Sandbox Code Playgroud)

现在这个子类遇到了一点错误.以前它做了一些xml-parsing,但是当我注意到它的doInBackground()没有被调用时,我逐行删除它,最后以这样结束:

@Override
protected Void doInBackground(String... params) 
{
    Log.v(TAG, "doInBackground");
        return null;
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,没有记录任何内容.但是,我补充说:

@Override
protected void onPreExecute() 
{
        Log.v(TAG, "onPreExecute");
        super.onPreExecute();
}
Run Code Online (Sandbox Code Playgroud)

并且在执行线程时确实记录了该行.所以不知何故onPreExecute()被调用但不是doInBackground().我在后台同时运行另一个AsyncTask,效果很好.

我目前正在模拟器上运行应用程序,SDK版本15,Eclipse,Mac …

multithreading android android-emulator android-asynctask

90
推荐指数
5
解决办法
7万
查看次数

第二个AsyncTask没有执行

我有2个AsyncTask,一个用于创建套接字连接,另一个用于使用这些套接字传输对象.我的代码是这样的:

try {
        connectat = true;
        transmitter = new SocketTransmitter();
        transmitter.execute();
        connector = new socketConnector();
        connector.execute(owner);

        this.open();
    } catch (IOException e) {
Run Code Online (Sandbox Code Playgroud)

但是,从不创建或执行被AsyncTask调用socketConnector.我试图改变顺序但是然后没有创建或执行发射器......

那有什么不对吗?

java sockets multithreading android android-asynctask

8
推荐指数
1
解决办法
1519
查看次数