Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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 单例vs意向(安卓)_Java_Android - Fatal编程技术网

Java 单例vs意向(安卓)

Java 单例vs意向(安卓),java,android,Java,Android,我将使应用程序更具体地成为android手机的游戏 我将有多个活动和许多课程,所以我正在考虑游戏数据的存储 游戏数据对于活动应该是可见的,所以我在想,我是应该使用singleton来存储数据并从任何活动中轻松接收数据,还是应该使用Intent来传递数据 将有少量和大量的数据(小的如分数,大的如地图等) 对于分数,我会使用意图,但这样做不是更好吗?如果是的话,我认为一个单身汉和全场状态会更好。有什么想法吗?当我需要由多个活动使用的数据时,我刚刚创建了一个自定义应用程序类,然后将其用作我的“单例”,

我将使应用程序更具体地成为android手机的游戏

我将有多个活动和许多课程,所以我正在考虑游戏数据的存储

游戏数据对于活动应该是可见的,所以我在想,我是应该使用singleton来存储数据并从任何活动中轻松接收数据,还是应该使用Intent来传递数据

将有少量和大量的数据(小的如分数,大的如地图等)


对于分数,我会使用意图,但这样做不是更好吗?如果是的话,我认为一个单身汉和全场状态会更好。有什么想法吗?

当我需要由多个活动使用的数据时,我刚刚创建了一个自定义应用程序类,然后将其用作我的“单例”,它工作正常,因为每个活动都可以访问自定义应用程序上下文

要做到这一点,首先要创建和扩展应用程序类

public class MyApplication extends Application {
  // Details left blank
}
将它添加到清单中,以便它知道如何使用它而不是默认应用程序

 <application 
        ...
        android:name=".MyApplication"

您还可以查看更多详细信息

如果您需要对多个活动可见的相同数据,请使用单例。如果您只需要将某些特定数据通知下一个活动,请在您的意图中使用extras。就我个人而言,我认为两者都用比较好;它们并不是相互排斥的。因为这是一个游戏,另一个很好的选择是ServiceLocator:你所说的自定义应用程序是什么意思。只是一个普通的单例模式类?我还想问,在良好实践和内存/cpu使用方面,哪一个更好。@Taks您可以创建一个自定义应用程序类。我将修改上述答案,在这里做同样的准备。效果很好。
((MyApplication)this.getApplicationContext()).myMethod()