私はクラス CreateDB を持っています
public class CreateDB extends SQLiteOpenHelper{ // SQLiteOpenHelper auto create if db not exists.
private static final int DB_VERSION = 1;
private static final String DB_NAME = "mydb.db";
public CreateDB(Context ctx) {
super(ctx, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE friends (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, phonenumber INTEGER);");
}}
バックグラウンドスレッドとして機能する別のクラスでcreatedbを呼び出します
public class manager extends AsyncTask<Void, Void, String> {
public Context context;
@Override
protected String doInBackground(Void... params) {
CreateDB dbhelp = new CreateDB(context);
}
}
私がそれを実行すると、動作が停止し、エミュレーターはアプリが応答を停止するというエラーを出します
しかし、「CreateDB dbhelp = new CreateDB(this);」を実行すると、主な活動では、それが機能し、データベースが作成されます。バックグラウンドスレッドでデータベースを作成できるように助けてください。