搜索了很久之后,我通过以下链接去和理解,onPostExecute doInBackground之前执行Asyncronous任务
http://developer.android.com/reference/android/os/AsyncTask.html#cancel(boolean)
AsyncTask never executes onPostExecute
但我希望做一些API命中服务器并获得所有的数据后,我想从Splashscreen移动到我的主要活动,下面是我的代码。 。 。 。
class Startsyntask extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... arg0)
{
raw_data = new File(Environment.getExternalStorageDirectory() + "/.MyFoldernew");
if(raw_data.exists())
{
Log.e("directory exists", " already ");
new read_syntask().execute();
}
else
{
Log.e("directory created", " newly ");
raw_data.mkdirs();
new write_syntask().execute();
}
return null;
}
@Override
protected void onPostExecute(Void unused)
{
if(i == 6)
{
finish();
startActivity(new Intent("com.sample.app.Tabbar"));
}
}
}
,并在代码read_synctask
和write_synctask
是有一些特定的操作做,在这些Asyncronous任务,它调用doinBackground后onPostexecute另一asyncronous任务。
实际上,它移动到Tabbar Activity并且API命中仍在继续,我从Tabbar活动中的服务器读取数据。我如何才能在doinBackground中完成异步任务后执行该操作,应该调用onProgress。
你可以尝试把startActivity在onPostExecute在read_synctask和write_synctask作为其中之一有你导航到下一个活动之前完成。为什么你使用两个异步任务? – Anukool 2013-02-14 06:59:21