非同期タスクを使用する必要があります。このクラスは、アップデートを公開し、UIスレッドで自動的に実行される長期実行のバックグラウンドタスクを実行するためのものです。
doInBackground
には、新しい値でonProgressUpdate
を呼び出すpublishProgress
が呼び出されます。
これはバックグラウンドで実行され、onProgressUpdateは自動的にUIスレッド上で実行されます。
の行に何か:
private class ShowLoading extends AsyncTask<Void, Integer, Void> {
@Override
protected Void doInBackground(Void... params) {
for (int i = 0; i < 3500; i++){
publishProgress(i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
if (values[0]%3 == 0){
textview.setText ("Loading.");
} else if (values[0]%3 == 1){
textview.setText ("Loading..");
} else if (values[0]%3 == 2){
textview.setText ("Loading..");
}
}
}
これは無限ループです( 'I = 1 + 100'):) – MByD
おっと!ごめんなさい。打ち間違え。私はi = i + 100を意味しました。かわった。 – Rajkiran
私はちょっと修正しましたが、働いています。 –