在AOSP,Android中定义Singleton

时间:2015-12-19 15:04:40

标签: java android singleton android-source

我正在制作定制的AOSP ROM。所以,我修改了一些系统类并创建了新类。我的问题是定义 Singleton类。使用这种模式,我们可以为每个请求创建一个对象,我们可以吗?但不知何故,当我构建aosp时,我会看到为每个Android应用程序生成多个相同的类。

public final Singleton{
 private static Singleton singleton;
 private int peakValue = -1;

 private Singleton(){}

 public static Singleton getInstance(){
  if(singleton == null)
    singleton = new Singleton();
  return singleton;
 }

 public int getPeakValue(){
    return getInstance().peakValue;
 }

 public void setPeakValue(int val){
   getInstance().peakValue = val; 
 }

}

在logcat,

........ApplicationName1 : .......Singleton@1000abafe1
........ApplicationName2 : .......Singleton@1000abafee

所以,当我打电话给Singleton.getInstance().getPeakValue();时,它会返回null,即使我已经设定了值。

任何人都可以帮助我吗? 我如何定义单身人士?

1 个答案:

答案 0 :(得分:2)

创建一个包含单例并绑定到它的服务。那么一次只会有一个服务实例。

每个应用程序都有自己的JVM,这就是您的方法不起作用的原因。