Java 在ArrayList中保存和恢复碎片活动
我有一个包含Activity-a的列表,每个Activity-a都有不同的值。但是,它们都有相同的类,即Activity-A。当用户从某个活动导航回列表时,我将该活动存储在ArrayList中,检索该活动,并在用户再次单击列表中的同一活动时将其作为意图启动。但是,这会导致它被重新创建。我希望它从存储在ArrayList中的状态恢复。我该怎么做 编辑:我听说过FragmentManager,以及它如何轻松地存储和检索片段。然而,是否有类似于FragmentManager的活动?ActivityManager和FragmentManager一样吗 编辑:为了进一步澄清我的问题,我尝试: 当FragmentActivity停止时,将其保存到ArrayList 将其从停止前的状态恢复。 但是,当我导航到存储在ArrayList中的FragmentActivity时,FragmentActivity将从头开始重新创建,而不是从以前的状态恢复 我明白我必须做些事情来挽救它的状态。然而,我怀疑我能保存它所有的内部内容;里面有很多碎片 代码如下: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
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编程新手,现在我所在的地方,互联网相当慢。