마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Thread에서 SQLite db가 생성되지 않나요?

0 추천

Thread에서 SQLiteOpenHelper를 통해 Table을 생성하려고 하는데

생성자를 호출이 되는데서 onCreate가 실행이 되지 않습니다.

  1. helper = new FriendHelper(cx, "/mnt/sdcard/friend.db"null1);

 

여긴 호출부분이구요.

1.  public FriendHelper(Context context, String name, CursorFactory factory,

2.              int version) {

3.   

4.          super(context, name, factory, version);

5.          Comm.LOG("FriendHelper 생성자1()");

6.      }

7.   

8.      @Override

9.      public void onCreate(SQLiteDatabase db) {

10.         Comm.LOG("FriendHelper onCreate()");

11.        

12.         String sql = "create table friend(_id integer primary key autoincrement, "

13.                 + "userId text, userName text, userTel text, userMac text, UNIQUE(userId));";

14.         try {

15.             db.execSQL(sql);

16.             for(int i = 0; i < friendAllInfo.size(); i++) {

17.                 ContentValues values = new ContentValues();

18.                 values.put("userId", friendAllInfo.get(i).getUserId());    

19.                 long id = db.insert("friend", null, values);

20.                 if (id > 0)

21.                     Comm.LOG("FriendHelper onCreate Insert Success");

22.                 else

23.                     Comm.LOG("FriendHelper onCreate Insert Error!");

24.             }

25.            

26.             Comm.LOG("FriendHelper Table Create Success");

27.         } catch(SQLException e) {

28.             Comm.LOG("FriendHelper Create Table Error : " + e);

29.         }

30.     }

31.     @Override

32.     public void onOpen(SQLiteDatabase db) {

33.         super.onOpen(db);

34.         Comm.LOG("FriendHelper onOpen");

35.     }

onOpen,onCreate Method의 Log가 찍히지 않습니다.

생성자1이라는 Log는 찍히지만 

이거 뭐가 문제가 있는건가요 ㅜㅜ?

 

Goni2 (770 포인트) 님이 2015년 2월 13일 질문

2개의 답변

0 추천
/mnt/sdcard/friend.db 부분이 잘못되었네요.
익명사용자 님이 2015년 2월 13일 답변
2015년 2월 13일 수정
0 추천

helper = new FriendHelper(cx, "friend.db"null1);

db는 기본적으로

/data/data/풀패키지네임/databases/friend.db

이렇게 저장됩니다

nicehee (73,100 포인트) 님이 2015년 2월 13일 답변
기본적으로는 /data/data..... 경로에 저장되는게 맞지만,
풀 경로를 지정해서 저장하면 원하는 위치에 저장할 수 있습니다...
위치를 저렇게 박아서 사용하지만 않으면 원문의 사용법은 틀리지 않았습니다.
...