Android TextView setText頻繁に更新表示更新しない問題
1195 ワード
開発中に、C側がサーバ側からコールバックされたデータ表示を受信する問題に遭遇し、記録します.
コールバックの方法は次のとおりです.
tvはすべての更新を表示できないことが分かったが,最初はコールバックが頻繁すぎてuiのリフレッシュに間に合わないと思っていたが,コールバック回数を減らした後はだめだった.最後に、テストは以下の方法で実現できます.
主にコールバックスレッドでMainActivityを呼び出す.this.runOnUiThread(Runnable)の方法は、UIスレッドで更新され、TextViewが表示されるようにする.
コールバックの方法は次のとおりです.
private ICallback mCallBack = new ICallback.Stub() {
@Override
public void onProgressUpdate(final int progress) throws RemoteException {
Log.d("DiskClean","onDiskCacheProgressUpdate: "+ progress+" :"+tv.getText());
tv.append("
"+ progress);
});
}
};
tvはすべての更新を表示できないことが分かったが,最初はコールバックが頻繁すぎてuiのリフレッシュに間に合わないと思っていたが,コールバック回数を減らした後はだめだった.最後に、テストは以下の方法で実現できます.
private ICallback mCallBack = new ICallback.Stub() {
@Override
public void onProgressUpdate(final int progress) throws RemoteException {
Log.d("DiskClean","onDiskCacheProgressUpdate: "+ progress+" :"+tv.getText());
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
String out = " :"+ progress+"%";
tv2.setText(out);
}
});
}
};
主にコールバックスレッドでMainActivityを呼び出す.this.runOnUiThread(Runnable)の方法は、UIスレッドで更新され、TextViewが表示されるようにする.