2011-03-08 38 views
3

我应该确定如果我的任何应用程序组件已经启动(onCreate for Activity/Service,onReceived for BroadcastReceiver等),那么我的应用程序实例的Application类已经存在了吗?启动任何组件后,Application实例是否存在?

我在应用类

public class MyApplication extends Application { 
private static MyApplication instance; 

@Override 
public void onCreate() { 
    instance = this; 
    super.onCreate(); 
} 

    public MyApplication getInstance(){ 
     return instance; 
    } 

当然这个类是在清单注册有静态字段“实例”。我想知道静态实例字段的使用是否安全,并且总是会返回适当的值。 我之前没有使用过内容提供者,但它是否也适用于内容提供者?

回答

-3

如果onCreate只能从一个线程访问,并且只创建一次,那么你应该没问题。有关如何以线程安全方式实现Singleton的示例,请参阅此文章(尽管在C#中)。静态引用确实是线程安全的,因为您也有一个静态初始化器。

http://www.codeinthemorning.com/design-patterns/singleton-pattern/

+0

删除 - 这不是他要问的问题 – 2013-12-28 04:33:50

相关问题