2013-04-18 40 views
1

网络requst我想提请网上要求的东西,那么这是核心实现(绘制逻辑ommitted):如何处理的Android

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 
    } 
} 

然而问题是请求的数据是时间消耗的工作,这意味着数据可能NOE immedirately返回。

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

+0

活动中的AsyncTasks,片段中的加载器。这个话题多次被深入报道。 – dmon 2013-04-18 03:58:54

+1

长时间运行操作的执行者http://developer.android.com/reference/java/util/concurrent/Executor.html。如果不长时间运行asycntask http://developer.android.com/reference/android/os/AsyncTask.html – Raghunandan 2013-04-18 04:03:48

回答

1

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