Java 重新创建活动并保存值
我想通过保存一个int值来重新创建活动。我不知道为什么onSavedInstance总是有值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
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()
,但不确定这是否适用于同一活动。。。