Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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/1/angular/29.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 在ArrayList中保存和恢复碎片活动_Java_Android_Android Activity_Arraylist_Onresume - Fatal编程技术网

Java 在ArrayList中保存和恢复碎片活动

Java 在ArrayList中保存和恢复碎片活动,java,android,android-activity,arraylist,onresume,Java,Android,Android Activity,Arraylist,Onresume,我有一个包含Activity-a的列表,每个Activity-a都有不同的值。但是,它们都有相同的类,即Activity-A。当用户从某个活动导航回列表时,我将该活动存储在ArrayList中,检索该活动,并在用户再次单击列表中的同一活动时将其作为意图启动。但是,这会导致它被重新创建。我希望它从存储在ArrayList中的状态恢复。我该怎么做 编辑:我听说过FragmentManager,以及它如何轻松地存储和检索片段。然而,是否有类似于FragmentManager的活动?ActivityMa

我有一个包含Activity-a的列表,每个Activity-a都有不同的值。但是,它们都有相同的类,即Activity-A。当用户从某个活动导航回列表时,我将该活动存储在ArrayList中,检索该活动,并在用户再次单击列表中的同一活动时将其作为意图启动。但是,这会导致它被重新创建。我希望它从存储在ArrayList中的状态恢复。我该怎么做

编辑:我听说过FragmentManager,以及它如何轻松地存储和检索片段。然而,是否有类似于FragmentManager的活动?ActivityManager和FragmentManager一样吗

编辑:为了进一步澄清我的问题,我尝试:

当FragmentActivity停止时,将其保存到ArrayList 将其从停止前的状态恢复。 但是,当我导航到存储在ArrayList中的FragmentActivity时,FragmentActivity将从头开始重新创建,而不是从以前的状态恢复

我明白我必须做些事情来挽救它的状态。然而,我怀疑我能保存它所有的内部内容;里面有很多碎片

代码如下:

listItem.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                showActivity(id);
            }


private void showActivity(int id) {
        ActivityA activityA = StaticLab.get(getActivity())
                .getActivityA(id); // getActivityA simply returns the ActivityA from the ArrayList which contains the specified id
        if (activityA == null) {
            createNewActivityA()
        }
        Intent i = new Intent(getActivity(), activityA.getClass());
        startActivity(i);

    }
您需要装箱一个静态Arraylist对象


因此,每次启动该活动时,您都不会创建新的ArrayList对象,您可以使用全局变量,但您的应用程序内存使用量会很大。在哪里检索数据?Web服务还是客户端数据库SQLite?如果您从SQLite检索数据,那么检索时间会非常快。若从Web服务检索,则应保存到SQLite。我不清楚你的问题。给你一个想法。希望得到帮助


你能更具体地回答你的问题并分享一些代码吗?谢谢,但我不太清楚你在说什么。如果您指的是活动的存储位置,则它们存储在ArrayList中。它包含的内容无法放入SQLite。您可以尝试使用全局变量。在“活动”状态下,是否要存储数组列表?我想那不可能。你可以阅读活动生命周期。我不太清楚你使用全局变量的意思。包含ArrayList的类是静态的,因此没有多个副本。当我导航到ListView时,活动会调用onStop,但当我通过intent返回到它时,它会再次调用onCreate,而不是onStart,我认为这可能是由于使用intent.StartActivityI请尝试恢复事件。onResume可将数据还原到以前的状态。如何执行此操作?对不起,我是android编程新手,现在我所在的地方,互联网相当慢。