Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.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 android中的静态变量用法_Java_Android_Static_Android Lifecycle - Fatal编程技术网

Java android中的静态变量用法

Java android中的静态变量用法,java,android,static,android-lifecycle,Java,Android,Static,Android Lifecycle,我正在开发一款android应用程序。在应用程序中,你可以创建不同的电影项目,每个项目都有剪辑(存储在遵循特定目录结构的外部存储器中),你可以使用这些剪辑。项目可以处于不同的状态,即已启动、正在进行、已完成。我使用目录名和共享首选项的组合来保存项目的状态。 当你打开应用程序时,会出现闪屏,在后台,我将所有项目和电影数据加载到我的主活动类中的静态ArrayList中。我仅在确认应用程序退出时才清除ArrayList(在按backpress时使用alert对话框完成)。所以我只在打开和关闭应用程序时

我正在开发一款android应用程序。在应用程序中,你可以创建不同的电影项目,每个项目都有剪辑(存储在遵循特定目录结构的外部存储器中),你可以使用这些剪辑。项目可以处于不同的状态,即已启动、正在进行、已完成。我使用目录名和共享首选项的组合来保存项目的状态。 当你打开应用程序时,会出现闪屏,在后台,我将所有项目和电影数据加载到我的主活动类中的静态ArrayList中。我仅在确认应用程序退出时才清除ArrayList(在按backpress时使用alert对话框完成)。所以我只在打开和关闭应用程序时在列表上写操作


到目前为止,它还可以正常工作,但我仍然对在静态变量中存储数据持怀疑态度。我不能预见任何错误,但我想听听社区对我的方法的想法

一种常见的方法是使用singleton模式,在该模式中创建“engine”类的实例,该类存储和管理应用程序状态和数据。当活动需要获取数据时,可以通过调用一些静态方法来访问它,例如Engine.getInstance()。这也有助于将逻辑代码与纯UI分离。

更好的、更可扩展的方法是考虑使用SQLite来实现某些类型的数据的持久化。在一个活动中存储所有内容的问题出现在您添加第二个活动时,而第一个活动超出了范围,消除了您的所有静态状态。我认为,由于变量是静态的,它们与特定的活动无关,而是与应用程序进程有关。根据,您可能可以这样做,但仍有几种方法可以卸载您的活动。这里最好不要依赖静态。