public class A{

   OpenHelper mOpenHelper;

   public A(Context context){

      mOpenHelper = new OpenHelper(context, "A.db", null, 1);

   }

   public class OpenHelper extends SQLiteOpenHelper{

      public OpenHelper(Context context, String name, CursorFactory factory, int version){

         super(context, name, factory, version);

      }

      onCreate, onOpen, onUpdate...생략

   }

}

 

위에 클래스랑 똑같이 생겼지만 이름만 B, C 로 다른 클래스가 2개 더 있습니다. (생성하는 DB 파일 이름도 B, C)

 

그리고 메인 액티비티 onCreate에서

 

A mA = new A(this);

B mB = new B(this);

C mC = new C(this);

 

이러면 하나만 DB가 생성되고 나머지는 생성자까지만 호출되고 onCreate나 onOpen이 불려지지 않더라구요;

 

만약 처음에 A만 생성됐다고 하면 BAC로 순서를 바꿔도 A만 onOpen이 호출되고 나머지는 호출이 안 되는 걸 로그로 확인 했습니다만..

 

한 번에 하나 밖에 못 만드나요?

 

그리고 호출 순서를 보니까 A 생성자 로그 찍히고 B 생성자 로그 찍히고 그 다음에 A onOpen 로그가 찍히더라구요?

 

쓰레드로 돌아가는 건가... 아님 뭐죠;

 

실제 만들고 있는건 A B C라는 이름은 아닙니다만 복사해서 만들었다는 사실은 같습니다.