, так должно быть
уверен, что я делаю неправильно, но onPostExecute никогда не вызывается.
Создан базовый класс с именем BaseActivity.javaИз моей первоначальной деятельности я расширил этот класс.Помещенный класс PostToOpenFeint внутри BaseActivityВызывается это из потока пользовательского интерфейса из основной деятельности, которую я делаю:
new PostToOpenFeint.execute();
OnPreExecute (), doInBackground (..) срабатывает, но по какой-то причине onPostExecute никогда не вызывается. <, / P>
Заранее спасибо!
Дейв
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();
сразу после создания действия, тогда все работает нормально. Если я сделаю этот звонок, скажем, внутри кнопки слушателя.
settingsButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new PostToOpenFeint.execute();
}
});
OnPostExecute () никогда не вызывается, не уверен, что я делаю неправильно. Ограничение, которое я прочитал, состояло в том, чтобы вызывать это из потока пользовательского интерфейса, а я вызываю его из потока пользовательского интерфейса.