【发布时间】:2011-08-31 10:01:11
【问题描述】:
我真的是 android 新手,我创建了一个应用程序,该应用程序具有通向其他活动的按钮,在这些活动中,数据被选择通过具有附加功能的意图发送回主要活动。
当我完成数据收集活动后,我调用 finish() 方法返回到我的主要活动。
用户可能希望重新访问信息收集活动以输入新数据,但当他们返回活动时,之前输入的数据是否不存在也没关系。
在编写应用程序时,这被认为是好的还是坏的做法?
谢谢, 中号
【问题讨论】:
我真的是 android 新手,我创建了一个应用程序,该应用程序具有通向其他活动的按钮,在这些活动中,数据被选择通过具有附加功能的意图发送回主要活动。
当我完成数据收集活动后,我调用 finish() 方法返回到我的主要活动。
用户可能希望重新访问信息收集活动以输入新数据,但当他们返回活动时,之前输入的数据是否不存在也没关系。
在编写应用程序时,这被认为是好的还是坏的做法?
谢谢, 中号
【问题讨论】:
取决于您的应用程序。
如果您的应用程序需要像选项活动或日期输入活动这样的永久数据,您必须“保存”活动的更改。 使用 Overryde 方法有一个简单的形式:
/**
* Method onSaveInstanceState.
* @param outState Bundle
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putBoolean("ISCALLSMS", isOnCallingSms);
super.onSaveInstanceState(outState);
}
/**
* Method onRestoreInstanceState.
* @param savedInstanceState Bundle
*/
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
if ( (savedInstanceState != null) && (savedInstanceState.containsKey("ISCALLSMS")) ){
isOnCallingSms = savedInstanceState.getBoolean("ISCALLSMS");
}
super.onRestoreInstanceState(savedInstanceState);
}
*这是我的应用程序的一个示例。 Yoy 应该决定您需要保存哪些数据。还有其他方法可以保存您的数据,这只是其中一种。
在其他情况下,如果您的应用不需要保存数据,那么您可以如何完成活动
【讨论】: