Прежде всего, вы можете использовать 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();
}
}
Не забудьте добавить декларацию активности в манифест, а также его фильтры намерений (действие = 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();
}
}
Все, что вам нужно, чтобы это работало, помещается в тег application
в атрибуте AndroidManifest.xml android:name=".App".
<!-- other xml stuff -->
<application ... android:name=".App">
<!-- yet another stuff like nextline -->
<activity ... />
</application>
person
pepyakin
schedule
25.02.2013