рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдХрд╛рдо рдХрд░реЗрдВ

рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЗрди рдореБрд╢реНрдХрд┐рд▓ рд╕рдордп рдореЗрдВ рд╕рднреА droiders рдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдВред
рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдкреЗрдЯреЗрдВрдЯ, рдпреБрджреНрдзреЛрдВ, рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣ рдкреНрд░рдЪрд╛рд░ рдЭрд┐рдЭрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд▓реЗрдЦ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдЬрдЧрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рднрд░рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рддреНрд░реБрдЯрд┐рдпреЛрдВ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рдердХ рдЧрдпрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЙрди рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореИрдВрдиреЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рд╕рд╛рдордирд╛ рдХрд┐рдП рд╣реИрдВ, рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреЗрд╡рд▓ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдореИрдВ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдореИрдВ рдкреЛрд╕реНрдЯ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реВрдВрдЧрд╛ рдФрд░ рд╣рдо рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдХрд╛рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдЧрд╛ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ SQLite рдХреЗ рд╕рд╛рде, рди рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рдФрд░ рд╕рд░рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦ рдЪреБрдХреЗ рд╣реИрдВред

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ

рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ, рдЬреЛ рддреБрд░рдВрдд рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ:
1) рдЖрдк рдПрдХ рдЦрд╛рд▓реА рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдиреЛрдЯреНрд╕ рдмрдирд╛рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рддрд╛ рд╣реИ) рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рднрд░ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдбреЗрд╡рд▓рдкрд░ рдореЗрдВ NotePad.android.com рдбреЗрдореЛ рдпрд╛ рдЕрдкрдиреЗ Droid рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ред
2) рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдбреЗрдЯрд╛ рд╕реЗ рднрд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдЬрд┐рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╛ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдбреЗрдЯрд╛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВред
3) рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ред
рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп рдПрдХ рдпрд╛ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреА рдорджрдж рд╕реЗ рдЗрд╕ рд╕реВрдЪреА рдХреЛ рдЦреБрд╢реА рд╕реЗ рдкреВрд░рдХ рдХрд░реВрдВрдЧрд╛ред
рд╕рднреА рдореБрдЦреНрдп рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ SQLiteOpenHelper рд╡рд░реНрдЧ рдХреА рд╡рд┐рдзрд┐), рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
class MyDBHelper extends SQLiteOpenHelper { final String CREATE_TABLE = "CREATE TABLE myTable(...)"; final String DB_NAME = "mySuperDB.db"; Context mContext; public MyDBHelper(Context context, int dbVer){ super(context, DB_NAME, null, dbVer); mContext = context; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //       db.execSQL("DROP TABLE IF EXISTS tableName"); onCreate(db); } ...-  } 

рдХреБрдЫ рдЗрд╕ рддрд░рд╣ред рдХрдХреНрд╖рд╛ рдФрд░ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рдЕрдзрд┐рдХ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рд▓реЗрдЦ рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рд▓рд┐рдВрдХ рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЖрдк onOpen (), getReadableDatabase () / getWritableDatabase () рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдорддреМрд░ рдкрд░ рдЙрдкрд░реЛрдХреНрдд рддрд░реАрдХреЗ рдФрд░ рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рд╡рд┐рдзрд┐рдпрд╛рдБ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред
рдЕрдЧрд▓рд╛, рд╣рдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд▓рд╛ рднрд╛рдЧ рдкрд╛рд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдХреНрдпреЛрдВ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрд╛рдЬрд╝рд╛рд░ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдИ рд╣реИ, рдпрд╛ рдЖрдкрдиреЗ рддреНрд░реБрдЯрд┐-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдХреЛрдб рд▓рд┐рдЦрд╛ рд╣реИред

рд╡реИрд╕реЗ, рдзреНрдпрд╛рди рджреЗрдиреЗ рд▓рд╛рдпрдХ рдПрдХ рдФрд░ рдмрд┐рдВрджреБ рд╣реИред рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрдирд╛рдпрд╛ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдкрд╛рд╕ () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдирд┐рд░рдВрддрд░ рдХрдиреЗрдХреНрд╢рди рдПрдХ рднрд╛рд░реА рд╕рдВрд╕рд╛рдзрди рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЯрдХрд░рд╛рд╡ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рднреА рдЪрд░реНрдЪрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдФрд░ рдЕрдм рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рддред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдореМрдЬреВрджрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
рдереЛрдбрд╝рд╛ рдЧреБрдЧрд▓реА, рдЖрдк рддреБрд░рдВрдд рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ "рдЕрджреНрднреБрдд рд▓реЗрдЦ" - www.reigndesign.com/blog/use-your-own-sqlite-database-in-android-applications рдореЗрдВ рдЖ рдЬрд╛рдПрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рд╕рд╣реА рд░рд╛рдордмрд╛рдг рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣рд╛рдБ рдирд╣реАрдВ рдерд╛ред рдЗрд╕рдореЗрдВ рдХрдИ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рднреА рд╣реИрдВред

рдпрд╣рд╛рдБ рд╡реЗ рд╣реИрдВ:
1) CreateDataBase () рд╡рд┐рдзрд┐ рдореЗрдВ, рд▓рд╛рдЗрди:
SQLiteDatabase dbRead = getReadableDatabase ();
рдФрд░ рдлрд┐рд░ рдХреЛрдб ... рдЗрдЪреНрдЫрд╛ рдПрдирдЯреАрдПрд╕ рдкрд░ рдХреНрд░реИрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдорд┐рд▓рддрд╛ рд╣реИ (рдпрд╣ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдпрд╣ рдмрдВрдж рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рд▓рд╛рдЗрди рдХреЗ рдиреАрдЪреЗ dbRead.close () рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдлрд┐рдХреНрд╕ рддреИрдпрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд┐рдВрджреБ рдмрд╣рд╕ рдпреЛрдЧреНрдп рд╣реИред
рдпрд╣рд╛рдБ рдЧреЛрджрд░реЗрдЬ getReadableDatabase () рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд╣рддрд╛ рд╣реИ:
рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдБ рдФрд░ / рдпрд╛ рдЦреЛрд▓реЗрдВред рдпрд╣ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рд╣реЛрдЧреА рдЬрдм рддрдХ рдХрд┐ getWritableDatabase () рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛, рдЬреИрд╕реЗ рдХрд┐ рдкреВрд░реНрдг рдбрд┐рд╕реНрдХ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ GetWritableDatabase () рд╕рдлрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд░реАрдб / рд░рд╛рдЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред
GetWritableDatabase () рдХреА рддрд░рд╣, рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ ContentProvider.onCreate () рд╕рд╣рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореБрдЦреНрдп рдереНрд░реЗрдб рд╕реЗ рдирд╣реАрдВ рдмреБрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдФрд░ рдРрд╕рд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдЖрд╡реЗрджрди рдХреЗ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдореЗрдВ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред
2) рддреНрд░реБрдЯрд┐: рдРрд╕реА рдХреЛрдИ рддрд╛рд▓рд┐рдХрд╛ android_metadata рдирд╣реАрдВ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЕрдЧреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдмрдирд╛рдХрд░ рдкреЛрд╕реНрдЯ рдХреЗ рд▓реЗрдЦрдХ рдирд┐рдХрд▓ рдЧрдПред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдХреНрд▓рд╛рдЗрдЯ-рдбреАрдмреА рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рд╣реИред
3) рддреНрд░реБрдЯрд┐: рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдеред рдХрдИ рд░рд╛рдп рд╣реИрдВ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд╛рдп рд╣реИрдВ рдЬреЛ рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

stackoverflow.com/questions/3563728/random-exception-android-database-sqlite-sqliteexception-unable-to-open-database
groups.google.com/group/android-developers/browse_thread/thread/a0959c4059359d6f
code.google.com/p/android/issues/detail?id=949
stackoverflow.com/questions/4937934/unable-to-open-database-file-on-device-htc-desire
androidblogger.blogspot.com/2011/02/instable-android-and-unable-to-open.html

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ рдХрд┐ рдПрдХ рдереНрд░реЗрдб рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдПрдХреНрд╕реЗрд╕ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдпрд╣ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЙрди рдореЙрдбрд▓ рдкрд░ рдПрдирдЯреАрдПрд╕ рдлреЛрди рдкрд░ рдЕрдХреНрд╕рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдорд╕реНрдпрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рд╣рд╛рд▓рд╛рдВрдХрд┐ рди рдХреЗрд╡рд▓ рдЙрди рдкрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрд╕рд░ рдХреА рдЧреЛрд▓рд┐рдпрд╛рдВ), рд▓реЗрдХрд┐рди рдпрд╣ рд╣реИ рдХрд┐ рдЬреИрд╕рд╛ рднреА рд╣реЛ, рдпреЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рдореМрдЬреВрдж рд╣реИрдВред
рдореИрдВ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рд╣реВрдВ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рд╣реИ, рд╡реНрдпрд░реНрде рдореЗрдВ рдирд╣реАрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдореЗрдВ рдЖрдзрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред

рд╢рд╛рдпрдж рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдЧрд╛ (рд╡рд┐рдХрд▓реНрдк 2 рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ)ред рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЗрд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
  @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE); fillData(db); } private void fillData(SQLiteDatabase db) { //  data.xml    assets //     //     sql-        db.execSQL()   } 

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЕрднреА рднреА рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдкреЛрд╕реНрдЯ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд╕рд╣реА рд╕рд╛рдореВрд╣рд┐рдХ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдФрд░ рдирдореВрдиреЗ рдХреЗрд╡рд▓ рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рд╣реИрдВред
рдХрд╣рд╛рдиреА рдХрд╛ рдиреИрддрд┐рдХ рдпрд╣ рд╣реИ: рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдЪреНрдЫреЗ рдХреЛрдб рдорд┐рд▓рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдЬрд╛рдВрдЪреЗрдВ, рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрд▓рд╕реА рди рд╣реЛрдВред

рдирд┐рд╖реНрдХрд░реНрд╖

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдкреЛрд╕реНрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИ (рд╡рд┐рдзрд┐ рд╕рдВрдЦреНрдпрд╛ 2 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ) рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдЪрд╛рд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
GetReadableDatabase () рд╡рд┐рдзрд┐ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
  @Override public synchronized SQLiteDatabase getReadableDatabase() { //Log.d(Constants.DEBUG_TAG, "getReadableDatabase() called"); SQLiteDatabase db; try { db = super.getReadableDatabase(); } catch (SQLiteException e) { Log.d(Constants.DEBUG_TAG, e.getMessage()); File dbFile = myContext.getDatabasePath(DB_NAME); Log.d(Constants.DEBUG_TAG,"db path="+dbFile.getAbsolutePath()); //db = SQLiteDatabase.openDatabase(/*DB_PATH + DB_NAME*/ dbFile.getAbsolutePath(), null, SQLiteDatabase.NO_LOCALIZED_COLLATORS); db = SQLiteDatabase.openOrCreateDatabase(dbFile.getAbsolutePath(), null); } return db; } 

рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдпрд╣рд╛рдБ - www.vogella.de/articles/AndroidSQLite/article.html

рд╡реИрд╕реЗ: рдордВрдЪ рдХреЗ рдЕрднреНрдпрд╛рд╕ рдХреЗ рдмрд╛рдж, рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдлрд╝реАрд▓реНрдб рдХреЛ "_id" рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЕрдкрдиреА рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рдерд╛рдУрдВ рдХреЛ рд▓рд┐рдЦреЗрдВред рд╣рдо рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдмрдирд╛рдПрдВрдЧреЗ, рдФрд░ рд╢рд╛рдпрдж рджреБрдирд┐рдпрд╛ рдереЛрдбрд╝реА рджрдпрд╛рд▓реБ рд╣реЛ рдЬрд╛рдПрдЧреАред

UPD рдмрд╕ рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВред

 public class DBHelper extends SQLiteOpenHelper { final static int DB_VER = 1; final static String DB_NAME = "todo.db"; final String TABLE_NAME = "todo"; final String CREATE_TABLE = "CREATE TABLE "+TABLE_NAME+ "( _id INTEGER PRIMARY KEY , "+ " todo TEXT)"; final String DROP_TABLE = "DROP TABLE IF EXISTS "+TABLE_NAME; final String DATA_FILE_NAME = "data.txt"; Context mContext; public DBHelper(Context context) { super(context, DB_NAME, null, DB_VER); Log.d(Constants.DEBUG_TAG,"constructor called"); mContext = context; } @Override public void onCreate(SQLiteDatabase db) { Log.d(Constants.DEBUG_TAG,"onCreate() called"); db.execSQL(CREATE_TABLE); fillData(db); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL(DROP_TABLE); onCreate(db); } private ArrayList<String> getData() { InputStream stream = null; ArrayList<String> list = new ArrayList<String>(); try { stream = mContext.getAssets().open(DATA_FILE_NAME); } catch (IOException e) { Log.d(Constants.DEBUG_TAG,e.getMessage()); } DataInputStream dataStream = new DataInputStream(stream); String data = ""; try { while( (data=dataStream.readLine()) != null ) { list.add(data); } } catch (IOException e) { e.printStackTrace(); } return list; } private void fillData(SQLiteDatabase db){ ArrayList<String> data = getData(); for(String dt:data) Log.d(Constants.DEBUG_TAG,"item="+dt); if( db != null ){ ContentValues values; for(String dat:data){ values = new ContentValues(); values.put("todo", dat); db.insert(TABLE_NAME, null, values); } } else { Log.d(Constants.DEBUG_TAG,"db null"); } } } 


Data.txt рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ:
рдЬрд╝рд╛рдореЗрдЯрдХрд╛ # 1
рдЬрд╝рд╛рдореЗрдЯрдХрд╛ # 2
рдЬрд╝рд╛рдореЗрдЯрдХрд╛ # 3
рдЬрд╝рд╛рдореЗрдЯрдХрд╛ # 4

рдФрд░ рдЖрд╡реЗрджрди рд╡рд░реНрдЧ:
 public class TODOApplication extends Application { private DBHelper mDbHelper; @Override public void onCreate(){ super.onCreate(); mDbHelper = new DBHelper(getApplicationContext()); mDbHelper.getWritableDatabase(); } @Override public void onLowMemory() { super.onLowMemory(); mDbHelper.close(); } @Override public void onTerminate(){ super.onTerminate(); mDbHelper.close(); } } 

рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЬрдм getReadableDatabase () / getWritableDatabase () рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд░реНрдЧ рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, android_metadata рдкреНрд▓реЗрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ (рдореЗрд░реА рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рдмрд┐рдирд╛) рджрд┐рдЦрд╛рдИ рджреА, рдЗрд╕рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рддреНрд░реБрдЯрд┐ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдХрд╛рдо рдЖрдПрдЧрд╛ред

рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдкрд░рд┐рд╡рд░реНрдзрди рд╕рдВрдЦреНрдпрд╛ 1 (рдХрд▓реЛрдмреЛрдХ рд╣рдмреНрд░рд╛рдпреБрдЬрд╝рд░ рд╕реЗ )

рдЕрдм рддрдХ рдореИрдВрдиреЗ SQLiteOpenHelper рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ - рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдкрд░ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдЬреЛ рд░рд┐рдЯрд░реНрди рджреЗрддрд╛ рд╣реИ рдЙрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, SQLiteOpenHelper рдХрднреА-рдХрднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдЗрд╕реЗ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдкрдврд╝рдиреЗ рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдХреНрдпрд╛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рдЖрджрд┐ред SQLiteOpenHelper.getWritableDatabase Context.openOrCreateDatabase рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреВрд░рд╛ рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Context.validateFilePath рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡рд╣рд╛рдВ рд╣рдо рдирд┐рдЬреА рд╡рд┐рдзрд┐ Context.getDat рдбреЗрдЯрд╛рдмреЗрд╕Dir рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╣рдо рдкрд╣реБрдВрдЪреЗред рдЖрдзрд╛рд░ рдорд╛рдирдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо SQLiteOpenHelper.getReadableDatabase рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рдпрд╣ рдПрдХ рд╣реА getWritableDatabase рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ Context.openOrCreateDatabase рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░реЗрдЧрд╛ - рдпрд╣ Context.getDatabasePath рдХреЛ рд╕реНрд╡рдпрдВ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ (рдпрд╣рд╛рдВ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рдФрд░ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЦреЛрд▓реЗрдЧрд╛ред рдпрджрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддреЛ рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдЕрдлрд╕реЛрд╕ред :(
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рд╕рд╣рд╛рдпрдХ рдХреЗ рд╕рд╛рде рд╡рд┐рдЪрд╛рд░ рдЕрдЪреНрдЫрд╛ рдерд╛, рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди - рдПрдХ рд╣реИрдВрдЧрдУрд╡рд░ рд╕реЗ рдмрд╛рдПрдВ рдкреИрд░ рдХреЗ рд╕рд╛рдеред

Source: https://habr.com/ru/post/In125883/


All Articles