1

我想在网上画一些要求的东西,那么这是核心实现(绘制逻辑省略):

public abstract class AbstractBasicDataHandler extends AbstractHandler{
    private DataProvider tp = new DataProvider();

    @Override
    protected void onReadyToDraw(Canvas c,int params) {
        byte[] data = tp.getDrawableData(params);
        doRender(c, data);
    }

    protected abstract void doRender(Canvas c, byte[] data);
}

AbstractBasicDataHandler完成数据请求的工作,然后任何子类AbstractBasicDataHandler将只专注于渲染工作,如下所示:

public class AnyClass extends AbstractBasicDataHandler{
    @Override
    doRender(Canvas c, byte[] data){
        //render according to the data
    }
}

然而问题是数据请求是一项耗时的工作,这意味着数据可能不会立即返回。

那么有什么经验可以满足这种要求吗?

4

1 回答 1

1

是的,您可以使用Asynctask它在其中执行其网络操作doInBackground()并在其中执行您的 UI 操作postExecute()

于 2013-04-18T04:46:15.700 回答