在这个问题上挣扎了一个合适的头衔。我遇到过奇怪/莫名其妙的情况,因为我有时会初始化字段。
在这种情况下,我有一个布尔值,我初始化为假(我知道,冗余......但是......)
应用运行良好,在退出之前我的布尔值设置为true。我看日志猫看到onDestroy()已被调用。
然后我重新启动应用程序。
我的布尔值,我现在登录onCreate()的值是真的。
WTF?
我注意到活动是以新的PID开始的。然而,它绕过了字段初始化。请注意,我有一些不是多余的。那么这里发生了什么?
然后我强制停止设备上的设置菜单中的应用程序。现在重新启动应用程序会按预期显示所有内容,boolean = false。
onDestroy()是不是可靠/真正的终止?我不记得曾经读过这样的东西。
这不是我的应用程序,而是一个例子:
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
private static boolean b = false;
private static int i = 1;
private static final String TAG = "junk app";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i(TAG, "==================================================================");
if(b) Log.i(TAG,"boolean is true");
if(!b) Log.i(TAG,"boolean is false");
Log.i(TAG,"The value of i is"+i);
i++;
b=!b;
foo();
}
public void foo() {
finish();
}
@Override
public void onResume() {
Log.i(TAG,"onResume");
super.onResume();
}
@Override
public void onStop() {
Log.i(TAG,"onStop");
super.onStop();
}
@Override
public void onDestroy() {
Log.i(TAG,"onDestroy");
super.onDestroy();
}
}
在设备上运行此应用并观察您的logcat。 onDestroy()被调用。现在从它的图标再次启动应用程序。我增加了,b变成了!b。
IDK,但我(天真)的期望是如果一个应用程序被销毁,如果它重新启动它会重新开始,所有初始化等都会再次完成。
答案 0 :(得分:0)
静力学是静态的 - 它们是整个过程的全局。所以他们的价值 将持续整个过程的生命周期,这通常很多 比单个活动实例更长。
来源:https://groups.google.com/forum/#!topic/android-developers/PZXbCXliRbo