2012-06-15 115 views
0

所以我试图使用Singleton方法做一个应用程序。我想要一个存储关于我的设备蓝牙状态/连接/设备的所有信息的类,并且我想要创建多个可以访问这些方法的活动。Android Singleton方法

我知道我需要一个扩展Application的类,然后我可以通过调用getApplication()来访问所有内容。我不明白的是我初始化这个对象的地方。在我的参考框架中,我拥有所有这些单独的活动,如果我将对象初始化为一个,我将需要使用意图将对象传递给下一个活动,这完全违背了使用单例的目的方法。

任何帮助,将不胜感激,谢谢。

+0

我不知道你这是哈哈 – JuiCe

回答

1

如果您扩展应用程序,您的课程将在您的应用程序启动时创建。它可以在使用getApplication()的Activity类中检索()

+0

谢谢你的意思!所以它会自动初始化?因此,如果我为该类构造一个构造函数,它将在类启动之前执行,并且基本上任何时候我想在任何Activity中访问它,我只需调用“getApplication()。anyMethod()?” – JuiCe

+1

它有一个onCreate方法,它会自动调用,你可以做你的初始化。是的,你可以通过getApplication() – barry

+0

来访问它,这要感谢很多老板 – JuiCe

2

只需从android.app.Application扩展即可。然后将其注册为您AndroidManifest.xml应用程序类:

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

在你的类,您将收到平常的Android电话,如

@Override 
public void onCreate() { } 

在这里您将能够初始化全局实例。

在活动获取所有MyApplication与向下转换的实例:

MyApplication app = (MyApplication) getApplication(); 

希望有所帮助。

+0

你规则感谢 – JuiCe

+0

我给了其他人的答案只是因为他回答第一个抱歉:/ – JuiCe

+1

没问题。 – mschonaker