。データベースを使って作業するのが望ましい方法です。このクラスにはonCreate(SQLiteDatabase)
メソッドがあり、最初にデータベースを作成するときに呼び出されます。私はそれがあなたによく合うと思います。
さらに柔軟性があり、初めてロジックがデータベースのみで結ばれないようにするには、先に提供されたサンプルを使用できます。あなたはスタートアップの場所に置くだけです。
2つのスタートアップスポットがあります。あなたは、単一の活性を有している場合、あなたは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 runned.
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}
}
それはintentfiltersだだけでなく、activity declaration in manifestを置くことを忘れないでください(アクション= MAIN
、カテゴリ= 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 runned.
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}
}
これが動作するために必要なのは、AndroidManifest.xmlをしてapplication
タグに入れてはアンドロイド属性:名=「アプリケーション」。
<!-- other xml stuff -->
<application ... android:name=".App">
<!-- yet another stuff like nextline -->
<activity ... />
</application>
ありがとう、あなたのコードは私を世界から救う。 –