首先你可以使用SQLiteOpenHelper。它是使用数据库做事的首选方式。这个类有一个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 ran.
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}
}
别忘了输入activity declaration in manifest,还有intentfilters(操作=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 ran.
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}
}
所有你需要的,都放在AndroidManifest.xml属性android:name=".App"中的application标签中。
<!-- other xml stuff -->
<application ... android:name=".App">
<!-- yet another stuff like nextline -->
<activity ... />
</application>