2010-11-30 2 views
0

저는 SQL에 약간의 주입을하고 있습니다. 그렇게 오래 걸리지는 않지만 앱이 데이터를 주입하는 동안 진행률 표시 줄이 필요합니다.안드로이드 : SQL을 주입하는 동안 진행 바를 만드는 데 도움이됩니다.

이것은 내 코드이지만 진행률 표시 줄은 검은 색 화면 만 나타나지 않습니다.

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     boolean firstStart = settings.getBoolean("firstStart", true);   

     if(firstStart) {     
     ProgressDialog dialog = ProgressDialog.show(myInject.this, "", "Please wait.", true); 

      addInjection("The quick brown fox"); // about a hundred of these injections 

SharedPreferences.Editor editor = settings.edit(); 
     editor.putBoolean("firstStart", false); 
     editor.commit(); 

     dialog.dismiss(); //if i remove this i can see the progress dialog but wont close. 
} 
+0

다른 스레드에서 addInjection을 시도하십시오. 내 생각 엔 UI를 업데이트하는 주 스레드를 차단하는 것입니다. – Vjy

답변

1

이렇게하면 UI 스레드에서 작업을 실행하게됩니다. AsyncTask

UI 스레드에서 작업을 실행하지 않는 것에 대한 개발자 사이트를 읽는 것이 좋습니다.

+0

기본 진행률이 순환하는 원이 추가됩니다. 가로 막대를 표시하려면 STYLE_HORIZONTAL을 사용하고 백그라운드에서 incrementProgressBy (amount)를 호출하는 것을 의미합니다. 이는 원자 연산이기 때문에 commit() 중에는 수행 할 수 없습니다. 그래서 내가 너라면 나는 둥근 것을 지킬거야. – Emmanuel

관련 문제