Benim Android Uygulamasında bir SQLite Veritabanı ve bir İçerik Sağlayıcısı var. Bu İçerik Sağlayıcı, uygulamanın AndroidManifest.xml
numaralı telefonunda kayıtlı. Dışa aktarılmaz, bu yüzden sadece benim uygulamam onu görebilir. Kullanıcının profilini sıfırlamanın bir parçası olarak, bu veritabanını tamamen silmek ve sıfırdan yeniden oluşturmak istiyorum. İlk başta aktivitenin içeriğinden deleteDatabase()
'u aramayı denedim. Bu çalışır, ancak sadece uygulama kapatılır ve daha sonra yeniden açılırsa. Aksi takdirde veritabanının salt okunur olduğunu söyleyen satırları eklemeye çalıştığımda çökecektir. Anlayışım, bağlantının deleteDatabase()
numaralı telefonu aramadan önce kapatılması gerektiğidir. Yine de, bağlantı İçerik Sağlayıcı tarafından yönetilir ve anladığım kadarıyla manuel olarak kapatılmamalıdır.İçerik Sağlayıcılarını kullanırken veritabanını yeniden oluşturun
Alternatif olarak, tablolardaki tüm verileri silecek ve sıralama sayılarını el ile sıfırlayacak bir özel işlevi çağırmak için ContentResolver
'dan call()
yöntemini kullanıyorum.
Bu, ancak şimdi her tablodaki verileri el ile silmem gerekiyor ve gelecekte yapacağım değişiklikleri izlemem gerekiyor.
birContentProvider
kullanırken benim
DatabaseHelper
(
SQLiteOpenHelper
) tetik
onCreate()
tüm veritabanını silmek ve sahip olmak daha iyi bir yolu var mı?
Niçin tüm içeriği silmek ve yeniden oluşturmak istiyorsunuz? –
@DiegoTorresMilano Her tabloyu/satırı (dolayısıyla deleteDatabase'i çağırmaya çalışmak zorunda kalmadan) veritabanını yeni bir duruma hızlı bir şekilde yenilemeye çalışıyorum ve ilk kurulum işleminin yeni profili ilk başta olduğu gibi yeniden yapılandırmasına izin veriyorum. koşmak. Şu anda tüm veri satırlarını siliyorum, sadece çalışacak olan deleteDatabase'i çağırmaya yakın bir şey olup olmadığını merak ediyorum. – Programmer001
Dosya hala açıkken silmeye çalışmamalısınız. –