비동기 작업을 사용하여 내 목록보기에서 데이터를 다시로드하고 내 활동의 진행률 막대를 설정하여로드 중임을 표시합니다. 그러나 문제는 새로운 액티비티를 시작한 후 다시 돌아오고로드가 완료되지 않으면 진행 막대가 표시되지 않는다는 것입니다. 계속로드하려면 진행률 막대를 어떻게 설정할 수 있습니까? 그리고 언급 한 것을 잊어 버렸습니다. 다시 액티비티로 돌아 가면 비동기 작업으로도 내 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