即使应用关闭,全局变量仍然存在

时间:2014-07-11 07:34:35

标签: android android-activity global-variables

我已经声明了一个扩展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;
    }
}

1 个答案:

答案 0 :(得分:1)

如何将保持相同的变量设置为null或在离开App时重置变量。

您可以使用此

@Override
public void onPause() {
    yourVariable = null;
}

@Override
public void onDestroy() {
    yourVariable = null;
}

我还建议使用SharedPreferences在整个应用中设置全局变量。

相关问题