我不确定我做错了什么,但 onPostExecute 永远不会被调用。
onPreExecute()、doInBackground(..) 被触发,但由于某种原因 onPostExecute 永远不会被调用。
先感谢您!
Dave
private class PostToOpenFeint extends AsyncTask<Void, Void, Void> {
/*
* (non-Javadoc)
*
* @see android.os.AsyncTask#doInBackground(Params[])
*/
@Override
protected Void doInBackground(Void... params) {
// does all the work here
return null;
}
/*
* (non-Javadoc)
*
* @see android.os.AsyncTask#onPostExecute(java.lang.Object)
*/
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
Toast.makeText(MainScreen.this, "Done syncing", Toast.LENGTH_LONG).show();
}
/*
* (non-Javadoc)
*
* @see android.os.AsyncTask#onPreExecute()
*/
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
Toast.makeText(MainScreen.this, "About to sync all your scores", Toast.LENGTH_LONG).show();
}
进一步研究,这就是我能够观察到的。例如,如果我拨打此电话:
new PostToOpenFeint.execute();
在 Activity 的 onCreate 之后,一切正常。如果我将此调用放在按钮侦听器中。
settingsButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new PostToOpenFeint.execute();
}
});
onPostExecute() 永远不会被调用,不确定我做错了什么。我读到的限制是从 UI 线程调用它,而我是从 UI 线程调用它。