当我的线程开始时,我将AtomicBoolean
设置为true。
最后,我在关联的Handler中将其重置为false。
当我在线程结束前更改屏幕方向时:
线程结束,我再次更改方向:
的OnCreate():
if (savedInstanceState != null) {
boolLocThread.set(savedInstanceState.getBoolean("boolLocThread"));
Log.i("APP", "load LOC: " + boolLocThread.get());
if (boolLocThread.get()) {
Log.i("APP", "show progressDialog again");
progressDialog = ProgressDialog.show(App.this, "", "Loading...", true);
}
}
处理程序:
Handler handlerLoc = new Handler() {
@Override
public void handleMessage(Message msg) {
Log.i("APP", "Handler received (LOC)");
Log.i("APP", "Suppress progressDialog (LOC)");
progressDialog.dismiss();
boolLocThread.set(false);
Log.e("APP", "Bool: " + String.valueOf(boolLocThread.get()));
}
};
的onSaveInstanceState:
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean("boolLocThread", boolLocThread.get());
Log.i("APP", "save LOC: " + boolLocThread.get());
}
在OnStop方法中,我将我的布尔值设置为false,在OnPause方法中,我解除了progressDialog,如果它存在的话。 如果我在结束前没有关闭屏幕,则bool会重置为FALSE,并且没有问题。我怎么能正确重置我的布尔值?感谢