单例模式 vs 意图 (Android)

6

我打算开发一款安卓手机游戏,需要涉及到IT技术。

由于游戏中有多个活动和许多类,因此我在考虑如何存储游戏数据。

游戏数据应该对活动可见,所以我在思考是否应该使用单例来存储数据,并从任何活动中轻松接收数据,还是应该使用意图传递数据?

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

对于得分,我会使用意图传递数据,但如果所有数据都使用相同的方式处理,这样不会更好吗?如果是的话,我认为一个包含整个游戏状态的单例会更好。你有什么想法吗?


1
如果您需要多个活动可见的相同数据,请使用单例。如果您只需要通知下一个活动某些特定数据,请在Intent中使用extras。个人认为最好同时使用两者;它们并不互斥。 - Glendon Trullinger
1
由于这是一个游戏,另一个很好的适配器是ServiceLocator:http://gameprogrammingpatterns.com/service-locator.html - mibollma
1个回答

1
当我需要多个活动使用的数据时,我只需创建一个自定义应用程序类,然后将其用作我的“单例”,这样每个活动都可以访问自定义应用程序上下文,效果很好。
要实现这一点,请首先创建一个扩展的应用程序类。
public class MyApplication extends Application {
  // Details left blank
}

将此添加到您的清单中,以便它知道使用该应用程序而不是默认应用程序。
 <application 
        ...
        android:name=".MyApplication"

然后添加任何您希望所有活动都可以访问的自定义方法,并从每个活动使用类似以下内容的东西

((MyApplication)this.getApplicationContext()).myMethod()

您也可以查看应用程序以获取更多详细信息


什么是自定义应用程序?只是一个普通的单例模式类吗?我还想知道在良好实践和内存/CPU使用方面哪个更好。 - Taks
@Taks,你可以创建一个自定义的Application类。我会修改上面的答案,请稍等。 - Idistic
在这里也做同样的事情。运作得非常好。 - source.rar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接