Я не уверен, что я делаю неправильно, но onPostExecute никогда не вызывается.
- Создан базовый класс под названием BaseActivity.java
- В моей первоначальной деятельности я расширил этот класс.
- Размещенный класс PostToOpenFeint внутри BaseActivity
-
Вызывается из потока пользовательского интерфейса из основного действия, которое я выполняю:
new PostToOpenFeint.execute();
Функция onPreExecute(), doInBackground (..) запускается, но по какой-то причине onPostExecute никогда не вызывается.
Благодарим вас в Advance!
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();
Сразу после onCreate of Activity, все работает нормально. Если я поставлю этот вызов, скажите внутри прослушивателя кнопок.
settingsButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new PostToOpenFeint.execute();
}
});
OnPostExecute() никогда не вызывается, не уверен, что я делаю неправильно. Ограничение, которое я прочитал, это назвать это из потока пользовательского интерфейса, и я вызываю его из потока пользовательского интерфейса.