我已经声明了一个扩展Application的类,以便在我的应用程序的活动之间保留一个全局变量。当我从我的启动器活动(FirstActivity.Java)按回来时,我的应用程序关闭,但变量的值仍然保持相同,这是我不想要的。如何实现呢?
请注意 - FirstActivity扩展了BaseActivity
我正在创建整个设置以显示引脚活动,只要应用程序启动或从backGround到达前台,就会询问引脚。所以我在
中的标志时显示引脚onStop()
中将标志设置为false,以便在检查onStart();
我做了以下 -
BaseActivity.Java
public class BaseActivity extends Activity {
//static boolean flag = true;
Context con;
private ApplicationActivity app;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//this.savedInstanceState = savedInstanceState;
app = (ApplicationActivity)getApplication();
Log.d("pin", "on Create base");
con = this;
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.d("pin", "on start 1");
if(app.isFlag()){
//Start pin activity here - if pin is true it sets flag to false
app.setFlag(false);
}
}
ApplicaitonActivity.java
public class ApplicationActivity extends Application{
private boolean flag = true;
public boolean isFlag() {
//SharedPreferences sp = new SharedPreferences();
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
FirstActivity.Java
public class MainActivity extends BaseActivity {
//private Bundle savedInstanceState;
Context con;
Button nextActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
//this.savedInstanceState = savedInstanceState;
Log.d("pin", "on Create 1");
con = this;
}
}
答案 0 :(得分:1)
如何将保持相同的变量设置为null或在离开App时重置变量。
您可以使用此
@Override
public void onPause() {
yourVariable = null;
}
或
@Override
public void onDestroy() {
yourVariable = null;
}
我还建议使用SharedPreferences
在整个应用中设置全局变量。