Android 1.5和1.6之后调用完成活动和主页按钮怪异的行为

时间:2010-01-12 13:06:53

标签: android savestate

Android平台1.5

  • 我在结束时打开启动画面我调用完()然后我移动到浏览页面。
  • 在浏览页面上,当我点击主页按钮时,它会隐藏应用程序。(Android的多任务处理功能的b / c)
  • 当我再次访问Android的桌面启动应用程序时,它会从启动画面开始。

Android平台1.6

  • 我在结束时打开启动画面我调用完()然后我移动到浏览页面。
  • 在浏览页面上,当我点击主页按钮时,它会隐藏应用程序。(Android的多任务处理功能的b / c)
  • 当我再次访问Android的桌面启动应用程序时,它总是从浏览屏幕而不是启动屏幕开始,为什么会这样?

我将所有数据放在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");
}
}

“找到的实例”永远不会被调用意味着它永远不会返回包的原因吗?

1 个答案:

答案 0 :(得分:1)

我刚尝试使用1.5和1.6设备上的应用程序做同样的事情 - 启动器活动是一个启动画面,然后启动“主”活动并调用finish()。 splash活动还设置了noHistory属性。

无论如何,在两台设备上,主屏幕按Home后显示为预期,然后再次显示启动器图标。

我不认为Android提供任何保证,当您从启动器图标启动它时,您的进程是否仍然存在。因此,您可以从任务堆栈停止的位置开始,也可以从LAUNCHER活动开始。

但在您的情况下,根据我的经验,您通常应该在点击发射器时进入“浏览”屏幕。除非你的系统超载。

无论如何,关于实例状态:您是否尝试过查看方法中首先调用super.onSaveInstanceState(outState)是否有任何区别?

另请注意,此方法通常仅在系统终止活动时调用;而不仅仅是它何时进入后台。在这种情况下,你不应该做任何事情。