我已经声明了一个类扩展应用程序,以保持我的应用程序的活动之间的全局变量。当我从我的启动器活动(FirstActivity.Java)我的应用程序关闭,但变量的值仍然保持不变,我不想要的。如何实现呢?
请注意- FirstActivity扩展了BaseActivity
我正在创建这整个设置来显示一个pin活动,每当应用程序启动或从后台进入前台时,都会请求pin。所以我把
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;
}
}
如何将仍然保持不变的变量设置为null或在离开应用程序时重置变量。
你可以使用
@Override
public void onPause() {
yourVariable = null;
}
或
@Override
public void onDestroy() {
yourVariable = null;
}
我还建议使用SharedPreferences
来设置整个应用程序的全局变量。