相关疑难解决方法(0)

如何使用保存实例状态保存Android Activity状态?

我一直在研究Android SDK平台,有点不清楚如何保存应用程序的状态.因此,考虑到'Hello,Android'示例的这种小型重新设计:

package com.android.hello;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {

  private TextView mTextView = null;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mTextView = new TextView(this);

    if (savedInstanceState == null) {
       mTextView.setText("Welcome to HelloAndroid!");
    } else {
       mTextView.setText("Welcome back.");
    }

    setContentView(mTextView);
  }
}
Run Code Online (Sandbox Code Playgroud)

我认为这对于最简单的情况就足够了,但无论我如何远离应用程序,它总是以第一条消息响应.

我确信解决方案就像覆盖onPause或类似的那样简单,但我已经在文档中捅了大约30分钟左右,并且没有找到任何明显的东西.

android application-state android-activity

2538
推荐指数
26
解决办法
74万
查看次数

onSaveInstanceState()和onPause()

我对Android中的这两种方法有点困惑.

从我理解的文档中,onSaveInstanceState()应该调用它来仅存储临时信息,并且onPause()应该用于存储任何持久性数据.

我想知道为什么要打电话onSaveInstance(),onPause()每次都打电话.然后我在记事本教程中阅读:

"请注意,saveState()必须在两者中调用onSaveInstanceState()onPause()确保保存数据.这是因为无法保证 onSaveInstanceState()将被调用,因为在调用它时,它会被调用onPause()."

无法保证onSaveInstanceState()将被调用,因为您可以使用后退按钮简单地走出活动.

但是根据这个,如果你不在两个方法中保存持久数据,那么应用程序可能会在内部被杀死onSaveInstanceState().

所以我们需要实际保存两种方法中的持久数据,对吗?

但是,如果这是真的,这不是太多的开销,也许应该有一些其他额外的标志来告诉方法是否已被调用或什么?

http://developer.android.com/resources/tutorials/notepad/notepad-ex3.html

android

26
推荐指数
2
解决办法
2万
查看次数

在哪里保存了onSaveInstanceState包?

我想知道存储onSaveInstanceState(Bundle outState)方法的bundle"outState"的位置.

它是存储在内存中还是存储在设备中?

我担心存储在捆绑中的数据的安全性.

android

20
推荐指数
4
解决办法
4216
查看次数