آموزش چگونه ديتابيس اپليكيشن جديد را وارد نماييم بدون اختلال با ديتابيس اپليكيشن ورژن قبلي
با سلام به همگي
يه سوالي برام پيش اومده بود و يه راه حل واسش درست كردم، خواستم راه خودمو باهاتون به اشتراك بگذاريم تا هم از نظر شما مطلع بشم هم دانسته هامو باهاتون به اشتراك بگذارم.
حتما شما هم ديدن تو بازار يا جاهاي ديگه برنامه هايي كه از ديتابيس لوكال استفاده ميكنن در ورژن هاي جديدشون ميگن كه مثلا "ورژن قبلي اپليكيشن را پاك كنيد يا data Clear را بزنيد بعد اپليكيشين جديد را نصب كنيد."
اما خوب اين راه درستي نيست، اصن معني نداره كه كاربر رو درگير اين كارا بكنيم، راه حلي كه من ارائه دادم اينجوره:
هنگامي كه اپليكيشن run ميشه متد زير رو اجرا كنيم:
String path="data/data/com.example/databases/";
String NameDB="mydb.db";
File file = new File(path);
if (file.isDirectory())
{
String[] children = file.list();
for (int i = 0; i < children.length; i++)
{
if(!children[i].equals(NameDB)){
new File(file, children[i]).delete();
}
}
}
در path شاخه اي كه ديتابيس در اون قرار ميگيره رو مشخص ميكنيم، و در NewDB اسم ديتابيسي كه الان ميخوايم تو اپليكيشن ازش استفاه كنيم.
متد به اين صورت هست كه مياد تمام فايلهايي كه در اون پوشه ديتابيس path كه معرفي كرديم رو ليست ميكنه و هركدوم كه اسمش با اسم ديتابيس ما يكي نبود رو حذف ميكنه. يعني همه فايلهاي قبلي غير اونايي كه ما ميخوايم.
همين قضيه رو ميتونيد واسه sharedprefrences هم استفاده كنيد.
- البته هنوز يه مسائله واسه من حل نشده مونده، ميشه كلا اپليكيشن رو منفجر كنيم؟ :D يعني نسخه جديد كه مياد نسخه قبلي اول پاك بشه بعد اين نصب بشه؟ يا حداقل يه قسمت از پوشه هاش مثلا همين پوشه ديتابيس!
خوشحال ميشم نظر دوستان رو هم بدونم. شب همگي خوش.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .