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



我已经声明了一个类扩展应用程序,以保持我的应用程序的活动之间的全局变量。当我从我的启动器活动(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来设置整个应用程序的全局变量。

相关内容

  • 没有找到相关文章

最新更新