Android平台1.5
Android平台1.6
我将所有数据放在onsave实例
中@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString(WLConstants.READ_GPS, readGPS );
outState.putSerializable(WLConstants.SEARCH_CRITERIA, searchCriteria);
outState.putString(WLConstants.PARAM_WHERE, locationField.getText().toString());
outState.putBoolean(WLConstants.PARAM_NEAR_ME, rNearMe.isChecked());
super.onSaveInstanceState(outState);
Log.v(TAG, "onSaveInstanceState()");
}
我从oncreate方法中提取值
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState != null){
Log.v(TAG,"instace found");
}else{
Log.v(TAG,"instace not found");
}
}
“找到的实例”永远不会被调用意味着它永远不会返回包的原因吗?
答案 0 :(得分:1)
我刚尝试使用1.5和1.6设备上的应用程序做同样的事情 - 启动器活动是一个启动画面,然后启动“主”活动并调用finish()
。 splash活动还设置了noHistory
属性。
无论如何,在两台设备上,主屏幕按Home后显示为预期,然后再次显示启动器图标。
我不认为Android提供任何保证,当您从启动器图标启动它时,您的进程是否仍然存在。因此,您可以从任务堆栈停止的位置开始,也可以从LAUNCHER活动开始。
但在您的情况下,根据我的经验,您通常应该在点击发射器时进入“浏览”屏幕。除非你的系统超载。
无论如何,关于实例状态:您是否尝试过查看方法中首先调用super.onSaveInstanceState(outState)
是否有任何区别?
另请注意,此方法通常仅在系统终止活动时调用;而不仅仅是它何时进入后台。在这种情况下,你不应该做任何事情。