2013-03-07 56 views
1

我是新来的android开发,并感谢任何帮助。 我有多个android活动必须访问一个java类。这个类有同步的getter和setter,但是我在跨活动创建这个类的单个实例时遇到了问题。有什么方法可以轻松做到这一点?Android多个活动访问一个Java类

+0

使这个类成为一个静态类怎么样? – 2013-03-07 13:29:28

回答

2

你需要的是一个'singleton'模式:

public final class Singleton { 
    private final static Singleton ourInstance = new Singleton(); 
    public static Singleton getInstance() { 
     return ourInstance; 
    } 

    // Contructor is private, so it won't be possible 
    // to create instance of this class from outside of it. 
    private Singleton() { 
    } 
} 

现在,在你的子类,只需使用:

Singleton.getInstance() 

访问一个,这个类的单个对象。

+0

所以我会将代码从旧的类文件中删除并粘贴到此? – user2144406 2013-03-07 13:32:24

+0

基本上,是的。或者让你的类的构造函数保持私有,然后添加ourInstance静态变量和getInstance()静态方法。请参阅[维基百科的一个很好的例子](http://en.wikipedia.org/wiki/Singleton_pattern#Eager_initialization) – kamituel 2013-03-07 13:34:03

+0

好的,谢谢你们生病了试试,你们是非常有帮助的 – user2144406 2013-03-07 13:37:40

0

您可以使用singleton设计模式。这是在java中实现它的一种方式

public class Singleton 
{ 
    private static Singleton uniqInstance; 

    private Singleton() 
    { 
    } 

    public static synchronized Singleton getInstance() 
    { 
    if (uniqInstance == null) { 
     uniqInstance = new Singleton(); 
    } 
    return uniqInstance; 
    } 
// other useful methods here 
}