すべての前にSQLiteOpenHelperを使用できます。データベースで物事を行うための好ましい方法です。このクラスには、onCreate(SQLiteDatabase)
最初にデータベースを作成するときに呼び出されるメソッドがあります。お似合いだと思います。
より柔軟性が必要で、初めてのロジックがデータベースにのみ関連付けられていない場合は、以前に提供されたサンプルを使用できます。スタートアップスポットに置くだけです。
スタートアップスポットは2か所。アクティビティが 1 つしかない場合は、コードをonCreate
メソッドに入れることができるため、次のようになります。
public void onCreate(Bundle savedInstanceState) {
// don't forget to call super method.
super.onCreate(savedInstanceState);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (!prefs.getBoolean("firstTime", false)) {
// <---- run your one time code here
databaseSetup();
// mark first time has ran.
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}
}
アクティビティ宣言をマニフェストに入れることを忘れないでください。それはインテントフィルター(action = MAIN
、category = LAUNCHER
) です。
複数のアクティビティがあり、スタートアップ ロジックを複製したくない場合は、すべてのアクティビティ (およびサービス、ブロードキャスト レシーバー、コンテンツ プロバイダーなどの他のコンポーネント) の前に作成されるアプリケーション インスタンスに初期化ロジックを配置できます。 .
そのようなクラスを作成するだけです:
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (!prefs.getBoolean("firstTime", false)) {
// <---- run your one time code here
databaseSetup();
// mark first time has ran.
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}
}
これが機能するために必要なのはapplication
、AndroidManifest.xml 属性 android:name=".App" のタグに入れることだけです。
<!-- other xml stuff -->
<application ... android:name=".App">
<!-- yet another stuff like nextline -->
<activity ... />
</application>