我正在使用異步任務重新加載我的listview中的數據,並在我的活動中設置進度條以顯示它正在加載。但問題是,如果我開始一個新的活動並返回並且未完成加載,則不會顯示進度欄。我怎樣才能設置進度條繼續加載?我忘了提及,在我回到活動後,異步任務不會刷新我的列表視圖。下面是我使用的代碼:Android異步任務進度條在返回到活動後不加載
public class MyCollectionsTask extends AsyncTask <Context, Integer, Void> {
@Override
protected Void doInBackground(Context... arrContext) {
JsonCollection jsonColl = new JsonCollection();
Log.e("","DO IN BACKGROUND");
for(int i=0; i<arrContext.length; i++) {
jsonColl.executeInsert(arrContext[i]);
}
return null;
}
@Override
protected void onProgressUpdate(Integer... progress) {
Log.e("","ON PROGRESS UPDATE");
for (int i=0; i<progress.length; i++){
progressBar.setProgress(i);
}
}
@Override
protected void onCancelled() {
Log.e("","ON CANCELLED");
progressBar.setVisibility(View.GONE);
sync.setImageResource(R.drawable.sync_icon2);
}
@Override
protected void onPreExecute()
{
Log.e("","ON PRE EXECUTE");
}
@Override
protected void onPostExecute(Void v) {
Log.e("","ON POST EXECUTE");
SystemDatabaseHelper newdbHelper = new SystemDatabaseHelper(MyCollectionList.this, null, 1);
newdbHelper.initialize(MyCollectionList.this);
String genresSQLforID = "SELECT DISTINCT g.genre_id AS genreID, gl.title AS Title " +
"FROM genres AS g, genre_lang AS gl " +
"WHERE gl.genre_id = g.genre_id AND gl.lang_code ='" + langCode + "'"+" ORDER BY gl.title";
Cursor genresCursor = newdbHelper.executeSQLQuery(genresSQLforID);
if (genresCursor.getCount() == 0) {
genresCursor.close();
} else {
genresCursor.moveToFirst();
GenID = Integer.parseInt(genresCursor.getString(genresCursor.getColumnIndex("genreID")));
}
getCollectionsForGenre(GenID);
final SharedPreferences isLogged = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = isLogged.edit();
editor.putBoolean("getProgBarCollection", false);
editor.commit();
progressBar.setVisibility(View.GONE);
sync.setImageResource(R.drawable.sync_icon2);
}
}
您正在使用哪種方法執行此任務? 'onCreate()'或什麼? –
我在onCreate()中運行這個; –
運行在onResume() – njzk2