UPDATE1的AsyncTask:使值到一個活動(onCreate方法)
活性:
public Integer _number = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
if (_number >0)
{
Log.d("onSuccessfulExecute", ""+_number);
}
else
{
Log.d("onSuccessfulExecute", "nope empty songs lists");
}
}
public int onSuccessfulExecute(int numberOfSongList) {
_number = numberOfSongList;
if (numberOfSongList >0)
{
Log.d("onSuccessfulExecute", ""+numberOfSongList);
}
else
{
Log.d("onSuccessfulExecute", "nope empty songs lists");
}
return numberOfSongList;
}
端UPDATE1
UPDATE:AsynchTask有它自己的外部類。
如何從的AsyncTask onPostExecute()...傳遞一個價值活動
我的代碼並從onPostExecute返回值()和更新用戶界面,但我正在尋找一種方式來設置活動變量(NumberOfSongList
)來自AsynchTask。
的AsyncTask類:
@Override
public void onPostExecute(asynctask.Payload payload)
{
AsyncTemplateActivity app = (AsyncTemplateActivity) payload.data[0];
//the below code DOES UPDATE the UI textView control
int answer = ((Integer) payload.result).intValue();
app.taskStatus.setText("Success: answer = "+answer);
//PROBLEM:
//i am trying to populate the value to an variable but does not seems like the way i am doing:
app.NumberOfSongList = payload.answer;
..............
..............
}
活動:
public Integer NumberOfSongList;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Several UI Code
new ConnectingTask().execute();
Log.d("onCreate", ""+NumberOfSongList);
}
如果你希望在'Log.v()'調用中看到'NumberOfSongsList',它可能不會發生,因爲'AsyncTask'沒有完成它的工作。 「asynctask.PayLoad」響應究竟是什麼? – Luksprog 2012-03-16 18:41:06
它肯定不會在Log.d中更新(「onCreate ....你顯示的是.asyncTask和線程的開銷會保證這個。你檢查過的值是否在程序中稍後更新? – eyespyus 2012-03-16 18:44:57
是的它的沒有更新log.di我意識到這一點..這就是爲什麼我需要幫助...是的,它確實更新onPostExecute的值,我可以看到它,但不在活動中。 – 2012-03-16 20:14:53