0

我有一个带有文本输入、微调器输入和第二个微调器输入的基本应用程序,其数组取决于“选项”菜单中更改的设置。

目前,当我在我的应用程序中按 Home 或按 Return 时,我要么返回桌面,要么循环返回我最近输入的旧输入。

如何防止我的应用程序打开自身的多个实例,以便在任何给定时间只有一个实例在运行,然后如何保存输入到输入中的数据以及在我的选项菜单中选择的设置?

我对Java有点陌生,所以如果这是一个简单的问题,我深表歉意。

4

2 回答 2

4

在您的活动中覆盖 onSaveInstanceState 和 onRestoreInstanceState。这些方法将允许您将数据保存到Bundle 您也可以将数据保存到Preferences。在我的所有应用程序中,我都覆盖了 onSaveInstanceState 和 onRestoreInstanceState 以将值保存和加载到 Bundle。我还将数据保存到 onPause 中的首选项并在 onResume 中加载首选项。同样在 onCreate(Bundle savedInstanceState) 我做这样的检查

    if(savedInstanceState != null)
    {
        m_mainView.restoreInstanceState(savedInstanceState);
    }
    else
    {
        m_mainView.loadGameFromDatabase(getPreferences(MODE_PRIVATE));
    }

这些做法一直对我有用。

于 2010-02-22T07:06:01.270 回答
2

您将不得不onPause对您的活动使用覆盖的方法并将您的数据保存在某处(可能是共享偏好)。然后onResume您必须从持久性存储中读取它们并填充您的控件。

onSaveInstanceStaterestoreInstanceState当您想要处理返回或主页按钮时,它不是您的朋友。

于 2014-07-08T07:15:28.297 回答