Android 1.5 和 1.6 调用完成 Activity 和主页按钮奇怪的行为

标签 android savestate

Android 平台 1.5

  • 我在调用 finish() 的最后打开启动画面,然后转到浏览页面。
  • 在浏览页面上,当我点击主页按钮时,它隐藏了应用程序。(Android 的多任务处理功能的 b/c)
  • 当我再次转到 Android 的桌面启动应用程序时,它从初始屏幕启动。

Android 平台 1.6

  • 我在调用 finish() 的最后打开启动画面,然后转到浏览页面。
  • 在浏览页面上,当我点击主页按钮时,它隐藏了应用程序。(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.5 和 1.6 设备上用一个应用程序尝试了这个,它做同样的事情——LAUNCHER Activity 是一个闪屏,然后启动“主” Activity 并调用 finish()本身。启动 Activity 还设置了 noHistory 属性。

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

不过,我认为 Android 无法保证您的进程在您从启动器图标启动时是否仍然存在。因此,您可以从任务堆栈停止的地方开始,也可以从 LAUNCHER Activity 开始。

但在您的情况下,根据我刚才的经验,您通常应该在点击启动器时出现在“浏览”屏幕上。除非您的系统重载得离谱。

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

另外请注意,此方法通常仅在 Activity 被系统终止时调用;不仅仅是当它进入后台时。在这种情况下,您应该无事可做。

关于Android 1.5 和 1.6 调用完成 Activity 和主页按钮奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2049084/

相关文章:

java - 如何在按下按钮时使一段代码循环并在不再按下按钮后停止它?

java - Android Studio(IntelliJ),maven构建工具: Failed to load dx. jar

安卓 : Saving data in onSavedInstance

javascript - WebView saveState() 是否保留 Javascript 变量/环境?

android - 为什么 RecyclerView 旋转后会恢复状态?

python - pickle 不可 pickle 的对象

java - Android 应用程序启动后崩溃,没有任何错误

android - 删除 JsonArray 中的值

Android Http 请求和响应使用 Protocol Buffer

java - richfaces keepAlive 不起作用