0

当我的活动第一次启动时,我必须给出一个对话框。所以我在我的

public void onCreate(Bundle savedInstanceState)

并使用

protected void onSaveInstanceState (Bundle outState) 

为了节省我的发射时间。我注意到操作系统创建了一个新的“Bundle outState”而不是使用旧的。而且我无法调试重新创建时的日期。

我的问题:

  1. 我保存在 onSaveInstanceState 中的日期,真的可以被 Oncreate 读取吗?以及如何调试?

  2. 当进程被操作系统杀死时,我是否可以只使用私有成员变量来保存状态并且不会被操作系统删除。

感谢您的帮助。

4

1 回答 1

0

Bundle不能用于在应用程序重新启动时携带数据。

您最好将数据保存到更永久的存储中,例如SharedPreferences,将此代码放入onCreate()

SharedPreferences prefs;
prefs = getSharedPreferences( "preferences", Context.MODE_PRIVATE);
long last_run_time = prefs.getLong( 'last_run', 0 );
if( last_run_time == 0 ) { // zero means your app has never been run
    // display dialog, this is the first time!
    ....
    // this saves current system time to prevent your dialog being seen again
    prefs.edit().putLong( 'last_run', system.currentTimeMillis() ).commit();
}
于 2012-04-23T07:45:03.313 回答