像@ micro.pravi在他的answer中提到的那樣,您可以在佈局中實現ProgressBar
。爲了保持狀態,你必須使用onSaveInstanceState
和onRestoreInstanceState
來保存和恢復重要的價值觀,即私有變量的方向改變後,像private boolean isChecking
public class MyActivity extends Activity {
public boolean isProcessing;
@Override
public void onCreate(Bundle stateBundle) {
super.onCreate(stateBundle);
// Set Layout
setContentView(R.layout.main);
if(stateBundle!=null) {
// read your data here from the bundle
isProcessing = stateBundle.getBoolean("isProcessing");
}
setUiState(isChecking);
}
@Override
protected void onRestoreInstanceState(Bundle stateBundle) {
// Second value of getBoolean is the default value
isProcessing = stateBundle.getBoolean("isProcessing", false);
super.onRestoreInstanceState(stateBundle);
}
@Override
protected void onSaveInstanceState(Bundle stateBundle) {
// Save the critical data
stateBundle.putString("isProcessing", isProcessing);
super.onSaveInstanceState(stateBundle);
}
@Override
protected onResume() {
setUiState(isProcessing);
}
private setUiState(boolean processing) {
textView.setEnabled(!processing);
button.setEnabled(!processing);
progressbar.setVisibility(processing?View.VISIBLE:View.GONE);
}
}
這應該被用來保存任何關鍵數據上的方向變化或者當該應用程序正在被殺害,隨後由操作系統恢復。您不必保存您的TextView
數據,因爲Defautl View元素已經自己處理這些數據。也不要以這種方式存儲圖像數據。而是將Uri或路徑存儲到Url並加載到恢復區
只是一個小小的建議,如果你不知道,如果你的佈局不是太複雜,你可以多次使用'setContentView'。 –