我有一个带有文本输入,微调器输入和第二个微调器输入的基本应用程序,其数组取决于“选项”菜单中更改的设置。
目前,当我在我的应用程序中按Home或按Return键时,我要么返回桌面,要么循环回到我最近输入的旧输入。
如何阻止我的应用程序打开自身的多个实例,以便在任何给定时间只运行一个实例,然后如何保存输入到输入中的数据以及在我的选项菜单中选择的设置? / p>
我对Java有点新意,所以如果这是一个简单的问题我会道歉。
答案 0 :(得分:2)
在你的活动中覆盖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));
}
这些做法一直对我有用。
答案 1 :(得分:1)
您必须在活动中使用onPause
重写方法,并将数据保存在某处(可能是共享首选项)。
然后onResume
你必须从持久性存储中读回它们并填充你的控件。
onSaveInstanceState
和restoreInstanceState
不是您的朋友。