ورود

View Full Version : سفید شدن صفحه قبل از اجرای برنامه



rezaeade
پنج شنبه 29 مهر 1395, 01:33 صبح
سلام دوستان خسته نباشید .دوستان من یه برنامه درست کردم ولی وقتی روی گوشی نصبش میکنم و اجراش میکنم اول صفحه نمایش حدود 3ثانیه سفید میشه بعد برنامه اجرا میشه اگر میشه راهنماییم کنید این هم کدstylesهست که استفاده کردم


<?xml version="1.0" encoding="utf-8"?>
<resources>


<style name="PhotoViewTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/black</item>
<item name="colorPrimaryDark">@color/black</item>
<item name="windowActionBarOverlay">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>




<style name="MyMaterialTheme" parent="MyMaterialTheme.Base">
<item name="android:spinnerItemStyle">@style/MooSpinnerItem</item>
</style>


<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>


<!-- Spinner text color -->


<style name="MooSpinnerItem" parent="android:Widget.TextView.SpinnerItem">
<item name="android:textAppearance">@style/MooTextAppearanceSpinnerItem</item>
</style>


<style name="MooTextAppearanceSpinnerItem" parent="android:TextAppearance.Widget.TextView.SpinnerItem">
<item name="android:textColor">#000</item>
<item name="android:textSize">18sp</item>
</style>


<!-- ActionBar styles -->
<style name="AppActionBar2"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/actionbar_bg</item>


<!-- Support library compatibility -->
<item name="background">@color/actionbar_bg</item>
</style>
<style name="MyMaterialTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="MyMaterialTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>


لطفا راهنماییم کنید

kingsezar
پنج شنبه 29 مهر 1395, 04:35 صبح
سلام . باید از AsyncTask استفاده کنید برای حل این مشکل
private class LongOperation extends AsyncTask<String, Void, String> {

@Override
protected String doInBackground(String... params) {
for (int i = 0; i < 5; i++) {
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
Thread.interrupted();
}
}
return "Exe66cuted";
}




@Override
protected void onPostExecute(String result) {


// might want to change "executed" for the returned string passed
// into onPostExecute() but that is upto you
btn.setText(result);


}




@Override
protected void onPreExecute() {}




@Override
protected void onProgressUpdate(Void... values) {}
}

دستور اجرای کلاس بالا :new LongOperation().execute("");

rezaeade
پنج شنبه 29 مهر 1395, 14:41 عصر
ممنون از راهنماییتون ولی میشه بگید این کد رو کجا و چجوری استفاده کنم؟

Nevercom
پنج شنبه 29 مهر 1395, 15:23 عصر
اگه از نسخه ی ۲ به بالای اندروید استودیو استفاده می کنید، به دلیل فعال بودن Instant Run وقتی برنامه رو در حالت دیباگ اجرا می کنید، همون اول چند ثانیه صفحه ی سفید دیده میشه و بعد اکتیویتی اصلی نمایش داده میشه. اما در حالت release این اتفاق نمی افته.

اگر چیزی غیر از این هست، لابد عملیات طولانی رو در UI Thread انجام میدید و بنا به توصیه ی دوستمون از Thread استفاده کنید.

برای امتحان برنامه رو ساین کنید و کامپایل نهایی بگیرید ازش و تست کنید ببینید مشکل هنوز پابرجاست

rezaeade
پنج شنبه 29 مهر 1395, 15:55 عصر
ممنون از راهنماییتون apkرو ساختم ولی باز همین مشکل رو داره اگر بگید چه جوری از کد بالا استفاده کنم ممنون میشم

rezaeade
پنج شنبه 29 مهر 1395, 19:28 عصر
دوستان داخل
styles تغییر کد دادم اون صفحه سفید رفت ولی الان وقتی روی برنامه کلیک میکنم 2ثانیه طول میکشه تا برنامه اجرا بشه چیکار کنم؟