[英]Update ProgressDialog with ProgressBar after rotation
我的應用程序在一個線程中處理一些圖像,同時它顯示一個帶有進度條的對話框。
progressDialog = new ProgressDialog(Activity.this);
progressDialog.setProgressStyle(size);
progressDialog.show();
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
for(int i = 0; i < size; i++{
//process images
runOnUiThread(new Runnable() {
@Override
public void run() {
progressDialog.setProgress(i);
}
});
}
}
});
thread.start();
現在,如果發生輪換,我會
@Override
protected void onDestroy() {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
super.onDestroy();
}
在onCreate
我重新創建對話框。 但是線程不會更改此新對話框的進度條。
旋轉后,顯示此對話框的活動(或片段)將被丟棄並創建一個新的。
您在新 Activity 中重新創建對話框,但是您啟動的線程更新了舊對話框中的對話框(該線程引用舊對話框的事實也構成了內存泄漏)。
我建議您執行以下操作:
使用這種方法,您會將處理邏輯封裝在一個特殊的對象中,該對象在旋轉后仍然存在,並且不同的組件可以調用其方法並訂閱來自它的通知。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.