Java Android中的大型公共静态变量
嘿,我正在制作一个测验应用程序,我需要将多达100个“问题”对象的ArrayList从一个活动传递到另一个活动。问题对象有大约6个参数,都是非常小的字符串。我正在寻找实现这一点的方法,其中提到的一种方法是在一个类中将其声明为公共静态变量,然后在另一个类中引用它。我想知道以下几点:Java Android中的大型公共静态变量,java,android,memory-management,static,scope,Java,Android,Memory Management,Static,Scope,嘿,我正在制作一个测验应用程序,我需要将多达100个“问题”对象的ArrayList从一个活动传递到另一个活动。问题对象有大约6个参数,都是非常小的字符串。我正在寻找实现这一点的方法,其中提到的一种方法是在一个类中将其声明为公共静态变量,然后在另一个类中引用它。我想知道以下几点: 我需要先“实例化”ArrayList,然后才能使用它,还是只声明变量?例如: ArrayList<Question> QuestionBank = new ArrayList<Question>
- 我需要先“实例化”ArrayList,然后才能使用它,还是只声明变量?例如:
ArrayList<Question> QuestionBank = new ArrayList<Question>();
或ArrayList QuestionBank=new ArrayList();
ArrayList问题库;
- 如果我在一个活动中声明此变量,当我在另一个活动中时,它如何保持可用?声明它的活动是否一直在运行
- 这是一种非常消耗内存的方法吗?有没有一种更有效但相对直接的方法李>
- 如果我在使用完变量null后声明它,它将释放以前使用过的所有空间,对吗
MyClass。整个应用程序中都可以使用someField
,并且只有一个实例null
,内存将被释放(最终,当gc运行时)Intent.setExtra()
/Intent.getXXXExtra()
应用程序
类,该类是单个实例,在整个应用程序生命周期中处于活动状态MyClass。整个应用程序中都可以使用someField
,并且只有一个实例null
,内存将被释放(最终,当gc运行时)Intent.setExtra()
/Intent.getXXXExtra()
应用程序
类,该类是单个实例,在整个应用程序生命周期中处于活动状态我认为您不想将静态数据从一个活动读取到另一个活动,这是一种无疑会导致问题/副作用的解决方案。最好使活动尽可能地解耦
我相信最好的解决方案(如上所述)是让你的
问题类可分组。然后在ActivityIntent.setExtra
方法中设置数据。当您的其他活动开始时,您阅读了意图中的问题,然后您的所有数据都很好地符合活动的生命周期,并且您的活动通过这种方式更加可重用。我认为您不想将静态数据从一个活动读取到另一个活动,这是一种无疑会导致问题/副作用的解决方案。最好使活动尽可能地解耦
我相信最好的解决方案(如上所述)是让你的问题类可分组。然后在ActivityIntent.setExtra
方法中设置数据。当您的其他活动开始时,您阅读了意图中的问题,然后您的所有数据都很好地符合活动的生命周期,这样您的活动就更易于重用。您的声明都无效-您没有指定名称…哦,不!对不起,忘记指定名称了-我一直在编写自定义ArrayList时都犯了这个错误…您的声明都无效-您没有指定名称…哦,不!对不起,忘了指定名称-我实际上犯了这个错误,当我写自定义数组列表的所有时间…感谢这样一个完整的答案,彼得-正是我所希望的!谢谢你这么完整的回答,彼得-正是我所希望的!
ArrayList<Question> QuestionBank;