使用finish()的好习惯

时间:2011-08-31 10:01:12

标签: android activity-finish

我是Android的新手,我创建了一个具有按钮的应用程序,这些按钮会导致其他活动,其中数据被选择通过附加内容发送回主活动。

当我完成数据收集活动时,我调用finish()方法返回到我的主要活动。

用户可能希望重新访问信息收集活动以输入新数据,但如果之前输入的数据在返回活动时不存在则无关紧要。

在编写应用程序时,这被认为是好的还是坏的做法?

谢谢, M

1 个答案:

答案 0 :(得分:0)

取决于您的申请。

如果您的应用程序需要诸如选项活动或日期输入活动之类的永久数据,您必须“保存”活动的更改。 使用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);
}    

*这是我的应用程序的一个示例。你应该决定你需要保存哪些数据。还有其他方法可以保存您的数据,这只是其中之一。

在其他情况下,如果你的应用程序不需要保存数据就可以完成你的活动