单例或静态类

时间:2015-07-28 07:58:20

标签: java android static singleton

我有2个数据类来存储一些值。 First Class(Custom1)有一个Custom2类型的变量。

我希望通过不同的活动填充变量,并将信息存储到sql-Database中。

主要 - > Activity1(Var1已填充) - > Activity2(Var 2填充) - >活动3(Var 4填充) - > SQL。

要填充Var3(类型为Custom2),我想实现一项服务,因为数据是从Internet获取的。 (在活动1中调用 - >在用户填充活动2中的数据时获取数据的时间 - >在活动3结束时存储在SQL中)

现在我考虑实现一个单例类,其中所有数据都写入(来自3个活动和服务),最后将哪些值存储到SQL中。这是最好的方法吗?

或者我应该在Main.onCreate()中创建静态Custom1?我试图研究哪种方式效果最好,但我不确定。因为Custom1& Custom2类一起有大约22个变量,所以我想避免从Custom1类复制和粘贴到Singleton类。

通过活动传递Custom1的实例并不是一个好主意,因为我需要访问服务中的数据。

有人提示吗?我知道这几乎是一个经常被问到的问题,但是赞成回答“这取决于”我只是试图明确我的需求。

谢谢!

public class Custom1{
 private String Var1;
 private Int Var2;
 private Custom2 Var3;
 private String var4;

 public void Custom1(){ }

//getter & setter
}

public class Custom2{
 private double Var5;

 public void Custom2(){}

//getter & setter
}

1 个答案:

答案 0 :(得分:0)

以单例存储数据是此方案的最佳方法。 SharedPreferences存储在磁盘上,因此不必要的开销。到达最终活动后,您可以通过检查服务可以设置的某个标志来检查单件是否已完成加载。如果它然后写入SQL,否则创建一个广播监听器,它将监听服务完成任务然后写入SQL。