بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

بسته شدن اسپلش اسکرین پس از کپی شدن دیتابیس روی حافظه دستگاه (آموزش)

مدیریت گفتگو
محسن علیزاده 11 سال پیش
آخرین تغییر: 11 سال پیش

به درخواست دوست خوبمون سهیل

البته این کد کاملا تجربی هستش و شاید اصلا علمی نباشه! اما برای من it's work!

برای این کار کافیه یک اکتیویتی ساده برای اسپلشتون بسازید و کد زیر رو در اون قرار بدید:

                try {
copyDataBase();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

بعد زیر این کد، کد انتقال به صفحه بعدی رو بذارید:

startActivity(new Intent(SplashActivity.this, MainActivity.class));
SplashActivity.this.finish();

کد کپی دیتابیس رو هم در انتهای اکتیویتی قرار می دیم.

 private void copyDataBase() throws IOException {

InputStream myInput = getApplicationContext().getAssets().open("db.db");
String outFileName = "/data/data/" + getApplicationContext().getPackageName() + "/databases/db.db";

File databaseFile = getDatabasePath(outFileName);
if (!databaseFile.exists()) {
databaseFile.mkdirs();
databaseFile.delete();
OutputStream myOutput = new FileOutputStream(outFileName);
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
myOutput.flush();
myOutput.close();
myInput.close();
}

}

یه لودینگ هم به صورت نمایشی در اسپلش قرار بدید، تا وقتی صفحه بخواد بسته بشه خودش می چرخه...

موفق باشید.

نظرات

سهیل 11 سال پیش
مرسی محسن.دمت گرم.فقط برای من مشکل سیاهی صفحه رو داشت.
omidronaldoo 11 سال پیش
سیاهی صفحه رو مستونید با یک prograss bar برطرف کنید
سهیل 11 سال پیش
آخه من اون صفحم پروگرس بار هم داشت ولی باز هم سیاه بود.
Spirit 11 سال پیش
اون متد داخل Thread اجرا بشه اصولی تر هستش.

هنوز پاسخی ثبت نشده است


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .