SQLiteOpenHelperの実行タイミングとは?

このQ&Aのポイント
  • 「SQLiteOpenHelperクラス」を継承したユーザー定義クラスの、「コンストラクタ」や「onCreateメソッド」はデータベースの作成や開閉を行うタイミングで呼び出されます。
  • アクティビティにアクセスした時点で読み込まれるわけではなく、継承元のSQLiteOpenHelperクラスのインスタンス作成時に呼び出されます。
  • コンストラクタの引数として渡っているContextは、データベースの保存先やアクセス権限を指定するために使用されます。
回答を見る
  • ベストアンサー

SQLiteOpenHelperの実行タイミングは

android(Java) ・「SQLiteOpenHelperクラス」を継承したユーザー定義クラスの、「コンストラクタ」や「onCreateメソッド」はどのタイミングで(どういう経路で)呼び出されるのでしょうか? >データベースの作成がまだ行われていなければ作成を行い、作成されていればそれを開きます ・どうやってそれを知るのでしょうか? ・アクテイビティにアクセスした時点で読み込まれるのかと思ったのですが、アクティビティクラスでは、importしていないみたいだし… ・アクテイビティは関係ない? ・「SQLiteOpenHelperクラス」を継承した定義クラスが、どのタイミングで、どこから呼び出されるか、教えてください ※コンストラクタに引数として渡っているContextが、何か関係しているのでしょうか?

  • re97
  • お礼率80% (601/744)
  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.1

>どのタイミングで、どこから呼び出されるか これは誰にもわかりません。 では、 >・どうやってそれを知るのでしょうか? 両方からアクセスできるデータベーステーブルをつくり、 「終わったらフラグを立てるよ。」という作業をしてもらいます。 こちらはそのフラグが立つまで待っていればいいのです。

re97
質問者

お礼

回答ありがとうございましたー

関連するQ&A

  • 【.NET】コンストラクタをあとで呼出す方法

    .NET初心者です。 今VB.NETでVB6向けの自作COMクラスライブラリを作成しています。 自作クラスはStreamWriterクラスのラッパークラスとしてStreamWriterと継承関係にあります。 COMは引数なしのコンストラクターを一つ用意しなければなりませんが、 StreamWriterクラスは引数なしのコンストラクタを用意されていないため困っています。 自作クラス自身もFileクラスのラッパークラスで引数として使う必要があるため 継承関係を維持してVB6に公開する必要があります。 この問題をなんとか解決する手法って存在するのでしょうか? ちなみにほかに考えた手法は下記です。 ・プロパティーに StreamWriterのインスタンスを用いて継承関係なしであとでinitメソッドを呼び出す   →Fileラッパークラスの引数でStreamWriter型に代入出来ないため不可 ・StreamWriterを引数に取るメソッドの実装をあきらめる   →極力したくない ・StreamWriterラッパークラスの引数なしコンストラクタでStreamWriterクラスの引数ありコンストラクタを呼ぶ   →後でファイルのパスを指定する方法が見つからないため不可 他言語はそれなりにやってきたのでコンストラクターをあとで呼び出すなんて出来ないのはなんとなくわかるのですが何せ.NETを触り始めたのが最近なのでよろしくお願い致します。

  • クラスの継承の仕方

    後学のため、JavaScriptについて勉強しています。 JavaScriptでもクラス(のようなもの)を定義してオブジェクトを作成できるようですが、サブクラスを定義する方法が分かりません。メソッドやコンストラクタはどのように継承すればよいのでしょうか。 お分かりの方おられましたら、ご教授のほどお願い致します。

  • Java初心者です、エラーの意味が理解できません

    今晩は。Java初心者です、宜しくお願いします。 下のようなコードを書きましたが、 「コンストラクタ'sub(int)'は未定義です」、 「/型subのメソッド'disp(int)'は引数()に適用出来ません」というエラーが出ます。 エラーの意味が理解できません。 1.メソッドのみを持ったクラスSubに値をこのような渡し方は不可なのでしょうか。 2.Subには自動的にコンストラクタが生成されないのでしょうか。   されないとすれば、どの部分の書き方が悪いのでしょうか。 3.「型subのメソッド'disp(int)'への引数の渡し方」は、文法的にまずいということでしょうか。 それとも全てコンストラクタの生成が原因なのでしょうか。 ========================================================================= class Sub { void disp(int a) { System.out.println("a = " + a ); } } public class クラス { public static void main(String[] args) { Sub s = new Sub(10); //コンストラクタ'sub(int)'は未定義です s.disp();     //型subのメソッド'disp(int)'は引数()に適用出来ません  } }

    • ベストアンサー
    • Java
  • ファイルからの入力 Scannerクラス

    ファイルの内容を読み込むプログラムをJavaで作成しています。 Scannerクラスを利用するため、以下のようにimport宣言しました。 package bc; import java.util.Scanner; class FileScanner {  コンストラクタ{   }  メソッド{   }    :    :  mainメソッド{   } } という感じで書いているのですが、この場合のメソッド名は、 Scannerクラスで定義されている名前でないとダメなのでしょうか? 自分で作った名前でメソッドを定義したのですが、 Scannerクラスで定義されていません。 というようなエラーが返ってきてうまくいきません。 どなたか、ご教授くださいm(_ _)m

    • ベストアンサー
    • Java
  • 親クラスコンストラクタを呼び出すタイミングについて

    ・親クラスコンストラクタを呼び出すタイミングに決まりはあるのでしょうか? ・例えば、子クラスのコンストラクタではなくて、子クラスのメソッドとかで呼び出しても良いのでしょうか? ・後、親クラスコンストラクタ処理が不要な場合は、子クラスから呼ばなくても別に構わないのでしょうか?

    • ベストアンサー
    • PHP
  • Androidの関数が呼び出されるタイミング

    現在Androidを勉強中なのですが、関数が呼び出されるタイミングの質問です。 onCreate()はアクティビティ作成時に呼ばれるようですが、 画像のようなプログラムでアクティビティが表示された後、 ボタンを押すとonClick()が呼ばれる仕組みがわかりません。 ボタンを押した後onCreate()自体は呼ばれていないのに、 内部のonClick()がなぜ呼ばれるのでしょうか? このあたりの仕組を説明していただけると助かります。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 初歩的な質問です・・・

    最近javaの本を買って勉強しているのですが、最初で躓き、理解できないことろがたくさんあります。 ・インスタンスを作る ・コンストラクタを定義する ・メソッド ・引数 ・voidの使い方(public void ,void ~~ そもそもvoid自体の意味が・・・) ・クラスの継承 APIというのを見てもプログラミング初心者の私には説明が難しくて理解できません・・・。 なにかに例えて教えていただければうれしいです(^^) よろしくお願いします!

    • ベストアンサー
    • Java
  • 継承について(長文です)

    いつもお世話になっています。現在、継承についての練習問題を解いているのですがわからないことがあるので質問させていただきます。 問題は、「自己紹介メソッド(抽象メソッド)を持つIntroduceクラスを作成し、そのクラスを継承してFistsNameクラス、FullNameクラス、IncludeAgeクラスを作成しなさい。三つのサブクラスのインスタンスを混合して配列に保持し自己紹介をしなさい」というものです。 それぞれのクラスはコマンドライン引数で名字(引数一つ)だけ、フルネーム(引数二つ)、フルネームと年齢(引数三つ)と3種類の引数を入力することによって適切なメソッドが呼び出されるということです。(わかりにくい文章ですいません。例えばヤマダと入力すればFirstNameクラスの自己紹介メソッドが呼び出されてヤマダと表示させたいのです)引数をサブクラスに渡さないと行けませんが、まずコンストラクタで引数をサブクラスに渡す場合は引数を一つ(もしくは二つ)しか指定しなかったときはフルネームとフルネーム+年齢のクラスでコンパイルエラー(ArrayIndexOutOfBoundsException)が出ます(これは理解することが出来ます)次にメソッドで渡す場合はシグネチャが異なるのでオーバーライドされずこちらもコンパイルエラーとなります。この他に引数をサブクラスに渡す方法はあるのでしょうか? わかりにくい文章になってしまいましたが、要するに三つのサブクラスをインスタンス化しその後、引数の個数により適切なサブクラスのメソッドが呼び出され引数を連結して表示させたいのです。このようなことは実現できないのでしょうか?if節によって引数の個数で場合分けなどをしないといけないのでしょうか?質問文がわかりにくければ補足させていただきます。よろしくお願いします。

    • ベストアンサー
    • Java
  • jQueryのvar jQueryの仕組みについて

    jQuery-1.6.2のソースコードを見ているのですが質問させてください。 25行目の var jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context, rootjQuery ); }, そして100行めの jQuery.fn = jQuery.prototype = { constructor: jQuery, init: function( selector, context, rootjQuery ) { の意味が分かりません。 PHP等のclassになれているとJSのクラスは戸惑うことが多いのですが、この例は最たるもので、自分の中のJSでのclassは (1)スーパークラスのプロパティをcall()、apply()で継承 (2)スーパークラスのメソッドをprototypeオブジェクトで継承 (3)インスタンスのデータ型判定に必要なプロパティをconstructorで調整 だったのですが、スーパークラスがどの行のどれなのかも分かりません。 型やメソッド名からこれらがclassを意味しているのは分かるのですが、いったいどの部分がclass定義、継承を行っているのか教えていただけませんでしょうか? なぜこれらがclassになっているのかが理解できません。 分るのは、jQuery.prototype.constructor = jQueryで、それをjQuery.fnに代入((3))している事です。 329行目の、jQuery.fn.init.prototype = jQuery.fn;の右辺がnew {$class}の形であれば(2)のプロトタイプチェーンの形だと分るのですが。 (1)は、init内でメンバ変数を定義したりしているので、classなのかな、という程度しか分っておりません。 jQuery.fnがコンストラクタで、jQueryがインスタンスで、var jQueryは親クラスをinitしたもの?・・・と混乱しております。 質問内容も文章が混乱していて申し訳ないです。

  • Javascriptでオブジェクト思考は可能でしょうか?

    Javascriptでオブジェクト思考は可能でしょうか? クラスを作成して、変数を隠ぺいして、コンストラクタ・メソッドとか 継承などできるのでしょうか? 簡単なサンプルがあれば助かります。