继续上一个问题
我点击按钮并执行此操作的第一个屏幕活动
Intent intent = new Intent(MainMenu.this, NewClass.class);
intent.putExtra("value1", value1);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
将值传递给新活动,并在onCreate()
- 方法
在新活动上我点击后退按钮
时保存状态@Override
protected void onSaveInstanceState(Bundle outState) {
// the UI component values are saved here.
super.onSaveInstanceState(outState);
Toast.makeText(this, "Activity state saved", Toast.LENGTH_LONG).show();
}
@Override
public void onBackPressed() {
//super.onBackPressed();
Intent intent = new Intent(RoundScoring.this, MainMenu.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
Toast.makeText(this, "Back Button Pressed", Toast.LENGTH_LONG).show();
}
再次在第一个屏幕上,我点击了另一个按钮,其中包含以下内容:
Intent intentContiune = new Intent(MainMenu.this, NewClass.class);
intentContiune.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intentContiune);
已加载Activty,但由于尚未设置值,因此始终失败。我写了一个onRestorInstanceState
来重新填充bundle中的值,但它永远不会被触发。有人可以说我做错了吗
感谢您的时间
更新
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
Log.d(DEBUG_TAG, "returnstate called");
super.onRestoreInstanceState(savedInstanceState);
value = savedInstanceState.getString("value");
}
答案 0 :(得分:1)
使用应用程序
yourApplication.java
public yourApplication extends Application {
String Value;
public synchronized String getValue(){
return Value;
}
public synchronized void setValue(String Value){
this.Value = Value;
}
}
AndroidManifest.xml
<application android:name="yourApplication" ...
现在您可以使用以下方式在任何地方节省价值:
保存强> 的
((yourApplication) getApplicationContext()).setValue("something");
的 LOAD 强> 的
((yourApplication) getApplicationContext()).getValue();
答案 1 :(得分:0)
在活动开始后活动重新初始化时调用onRestoreInstanceState
get .....所以在开始活动时它将不会被调用...
如果您要保存一些数据,那么您可以将sharedPreference用于这样的情况....
答案 2 :(得分:0)
onRestoreInstanceState()
非常棘手。我建议你使用SharedPreferences
http://developer.android.com/guide/topics/data/data-storage.html#pref
答案 3 :(得分:0)
检查
的AndroidManifest.xml
它应该不包含
机器人:configChanges = “取向| keyboardHidden”
答案 4 :(得分:0)
只有在Activity中有要恢复的已保存状态时,系统才会调用onRestoreInstanceState。确切地说,由于缺少资源而系统杀死了Activity,它用于保存onSaveInstanceState中保存的状态。
如果您想保存一些信息并随时可用,那么只需使用SharedPreferences。