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라는 이름은 아닙니다만 복사해서 만들었다는 사실은 같습니다.




OpenHelper 클래스를 여러개 만들면 안되나요?
필요시에 필요한 클래스를 불러들이면 데이터베이스가 생성되겠죠~