Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何保存您的活动';退出时的状态是什么?安卓_Java_Android_Save_Multiple Instances - Fatal编程技术网

Java 如何保存您的活动';退出时的状态是什么?安卓

Java 如何保存您的活动';退出时的状态是什么?安卓,java,android,save,multiple-instances,Java,Android,Save,Multiple Instances,我有一个带有文本输入、微调器输入和第二个微调器输入的基本应用程序,其数组取决于选项菜单中更改的设置 目前,当我在应用程序中按Home或Return时,我要么返回到桌面,要么通过最近输入的旧输入循环返回 如何防止我的应用程序打开自身的多个实例,以便在任何给定时间只有一个实例在运行,然后如何保存输入的数据以及在选项菜单中选择的设置 我对Java有点陌生,所以如果这是一个简单的问题,我很抱歉。在您的活动中,覆盖onSaveInstanceState和onRestoreInstanceState。这些方

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

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

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


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

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

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

这些做法对我一直都很有效。

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

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

这些做法对我一直都很有效。

您必须在活动中使用
onPause
覆盖方法,并将数据保存在某个位置(可能是共享首选项)。 然后,
onResume
您必须从持久性存储中读回它们并填充控件


onSaveInstanceState
restoreInstanceState
在您想要处理返回或主页按钮按下时不是您的朋友。

您必须对活动使用
onPause
覆盖方法,并将数据保存在某个位置(可能是共享首选项)。 然后,
onResume
您必须从持久性存储中读回它们并填充控件


onSaveInstanceState
restoreInstanceState
在您想要处理后退或主页按钮按下时不是您的朋友。

您可以提供一个示例吗?
onSaveInstanceState
在用户通过按下后退或主页按钮明确存在应用程序时不会调用。只有当操作系统决定在没有您干预的情况下销毁您的活动时,才能使用此选项。您可以提供一个示例吗?
onSaveInstanceState
,当用户通过按“后退”或“主页”按钮显式存在应用程序时,不会调用。这只能在操作系统决定在没有你干预的情况下销毁你的活动时使用。我对此也有问题。我认为这些答案很好,但可以通过一些例子和更明确的信息来缩小范围。以我为例,我的应用程序只是纵向的,所以我不必担心保存,但回到家后,甚至“后退”按钮都会杀死用户文本视图数据,这是一种垃圾用户体验。我还没有找到描述在屏幕旋转之外该做什么的信息……我在这方面也遇到了问题。我认为这些答案很好,但可以通过一些例子和更明确的信息来缩小范围。以我为例,我的应用程序只是纵向的,所以我不必担心保存,但回到家后,甚至“后退”按钮都会杀死用户文本视图数据,这是一种垃圾用户体验。我还没有找到描述在屏幕旋转之外做什么的信息。。。