Trước khi tất cả các bạn có thể sử dụng SQLiteOpenHelper. Đó là cách ưa thích để làm việc với cơ sở dữ liệu. Lớp này có phương thức onCreate(SQLiteDatabase)
, được gọi khi tạo cơ sở dữ liệu đầu tiên. Tôi nghĩ nó phù hợp với bạn.
Nếu bạn muốn linh hoạt hơn và logic thời gian đầu tiên của bạn không bị ràng buộc chỉ với cơ sở dữ liệu, bạn có thể sử dụng mẫu được cung cấp trước đó. Bạn chỉ cần đặt nó ở vị trí khởi động.
Có 2 điểm khởi động. Nếu bạn chỉ có hoạt động duy nhất, bạn có thể đặt mã của bạn trong onCreate
phương pháp, vì vậy nó sẽ là như thế này:
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();
}
}
Đừng quên đặt activity declaration in manifest, cũng như nó intentfilters (action = MAIN
, category = LAUNCHER
).
Nếu bạn có nhiều hoạt động và bạn không muốn sao chép logic khởi động, bạn có thể đặt logic khởi tạo trong cá thể Ứng dụng, được tạo trước tất cả các hoạt động (và các thành phần khác, chẳng hạn như dịch vụ, người phát sóng phát sóng , các nhà cung cấp nội dung).
Chỉ cần tạo lớp như thế:
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();
}
}
Tất cả bạn cần để làm việc này, được đặt trong application
thẻ trong AndroidManifest.xml thuộc tính android: name = "App.".
<!-- other xml stuff -->
<application ... android:name=".App">
<!-- yet another stuff like nextline -->
<activity ... />
</application>
Cảm ơn bạn rất nhiều, mã của bạn đã cứu tôi khỏi thế giới. –