代码之家  ›  专栏  ›  技术社区  ›  Martín Schonaker

Android中的单例与应用程序上下文?

  •  351
  • Martín Schonaker  · 技术社区  · 14 年前

    回忆这个 post enumerating several problems of using singletons 在看到了几个使用单例模式的Android应用程序的例子之后,我想知道使用单例模式而不是通过全局应用程序状态(对android.os.application进行子类化,并通过context.getapplication()获取)共享的单个实例是否是个好主意。

    两种机制都有哪些优点/缺点?

    老实说,我希望在这篇文章里也有同样的答案 Singleton pattern with Web application, Not a good idea! 但适用于Android。我说的对吗?Dalvikvm有什么不同?

    编辑:我想就涉及的几个方面发表意见:

    • 同步
    • 可重用性
    • 测试
    10 回复  |  直到 7 年前
        1
  •  291
  •   Pragati Singh    7 年前

    getInstance()

        2
  •  225
  •   hackbod    14 年前

    MySingleton.getInstance(Context c) {
        //
        // ... needing to create ...
        sInstance = new MySingleton(c.getApplicationContext());
    }
    

        4
  •  11
  •   Amozoss    10 年前

    Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
    

        5
  •  10
  •   sunhang    11 年前

        6
  •  5
  •   adranale    14 年前

        7
  •  4
  •   Fedor    14 年前

        8
  •  3
  •   Christ    10 年前

        9
  •  3
  •   didge    7 年前

    public class AndroidApplication extends Application {
    
        private static AndroidApplication sInstance;
    
        public static AndroidApplication getInstance(){
            return sInstance;
        }
    
        @Override
        public void onCreate() {
            super.onCreate();
            sInstance = this;
        }
    }
    
        10
  •  2
  •   Piovezan    12 年前