Java 重新创建活动并保存值

Java 重新创建活动并保存值,java,android,Java,Android,我想通过保存一个int值来重新创建活动。我不知道为什么onSavedInstance总是有值null: public class ActionActivity extends AppCompatActivity implements View.OnClickListener { //... int p = 0; String newString; public void onCreate(Bundle savedInstanceState) { super.on

我想通过保存一个int值来重新创建活动。我不知道为什么onSavedInstance总是有值
null

    public class ActionActivity extends AppCompatActivity implements View.OnClickListener {
//...
int p = 0;
String newString;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.action);
        progress = (TextView) findViewById(R.id.Progress);
        if (savedInstanceState != null) {
            p = savedInstanceState.getInt("PROGRESS");
        }
        p++;
        newString = String.valueOf(p);
        progress.setText(newString);

    @Override
    public void onClick(View v) {
                    Intent i=new Intent(getApplicationContext(), ActionActivity.class);
                    startActivity(i);

    @Override
    public void onSaveInstanceState(Bundle savedInstanceState) {
    savedInstanceState.putInt("PROGRESS", p);
    super.onSaveInstanceState(savedInstanceState); }
}

我猜你对“重建”的意思有误解。你到底想干什么?您想在重新启动应用程序时保存此
int
吗?我想在重新启动活动时保存此值(根本不是应用程序)。此活动调用
ActionActivity
,在
onClick()
方法中,我再次调用此
ActionActivity
onSaveInstanceState()
在“销毁并重新创建”活动时被调用,这意味着一个非常具体的事情。最常见的情况是当用户旋转设备或将应用程序置于后台时。如果用户打开您的活动,返回,然后再次打开您的活动,则不会发生这种情况。好的,谢谢,我理解您的意思。那么,有没有一种方法可以在调用相同的活动时保存int值?我知道不同活动的
putExtra()
,但不确定这是否适用于同一活动。。。