我有以下问题:
在我的活动中,我调用了一个 Web 服务。一旦收到数据,我就想开始下一个活动。就像现在一样,活动在我调用我的AsyncTask
.
这是它的样子:
new PositionRequest().execute(lineNr);
Intent intent = new Intent(this, DataTableCreater.class);
intent.putExtra("RequestData", detailList);
startActivity(intent);
detailList
是一个 ArrayList,它onPostExecute()
在AsyncTask
.
我尝试了一些,boolean finished=false;
这在onPostExecute()
startActivity
while(!finished){
try{
wait(500);
}catch(Exception e){
}
循环,这当然不是一个好的解决方案。如果调用失败则结束,我陷入了无限循环。
那么我怎样才能startActivity()
等待,直到收到所有数据?因为否则我会得到一个NullPointerException
, 因为我intent.getStringArrayExtra()
在 DataTableCreater 活动中。
我看了一下这个,但这对我没有帮助。
如果您需要更多代码或信息,请在评论中告诉我,我会添加它们。
编辑 1:
我忘了补充,我需要在 AsyncTask 之外启动活动,因为我有第二个线程并行运行。在我开始活动之前,我需要完成两者。两者都需要大约相同的时间来完成,所以我不能说哪个先完成,然后从另一个 AsyncTask 开始活动。