Pantalla de presentación en pantalla blanca en blanco al realizar AsyncTask

Tengo una aplicación que las tasas de fondos de intercambio y muestra en un RecyclerView.
Mi aplicación estaba funcionando muy bien antes de hacer un cambio simple en el tema. Lo cambié de @android:style/Theme.AppCompat.Light.NoActionBar"
a
@android:style/Theme.NoTItleBar.Fullscreen
porque quería ocultar la barra de estado cuando mi aplicación se está cargando en el inicio.


Manifiesto

  <!-- Splash Screen --> <activity android:name=".Splash" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> 

Clase splash

 public class Splash extends Activity { private final int SPLASH_DISPLAY_LENGHT = 5000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.initial_activity); new InitialViewLoad().execute(); } private class InitialViewLoad extends AsyncTask<Void, Void, Long> { @Override protected Long doInBackground(Void ... params) { long before = System.currentTimeMillis(); List<Fund> funds = FundPortfolio.get(getApplicationContext()).getFunds(); new PricesFetcher().fetchItems(funds); for (Fund fund : funds) { new FinanceFetcher().fetchItems(fund); FundPortfolio.get(getApplicationContext()).updateFund(fund); } long after = System.currentTimeMillis(); long time = after - before; return time; } @Override protected void onPostExecute(Long time) { Intent i = new Intent(Splash.this, MainActivity.class); synchronized (this) { try { if (SPLASH_DISPLAY_LENGHT - time > 0) { wait(SPLASH_DISPLAY_LENGHT - time); } } catch (InterruptedException ioe) { Log.e("Blah,Blah,Blah", "Blah", ioe); } finally { startActivity(i); finish(); } } } } } 

Si no ejecuto el InitialViewLoad().execute(); la pantalla de bienvenida aparece como normal.
Si tengo un fondo añadido en mi actividad principal, la pantalla de inicio funciona como antes del cambio.
Si el RecyclerView está vacío (no contiene fondos), aparecerá una pantalla en blanco en lugar de la pantalla Splash.

No puedo por la vida de mí averiguar lo que está causando esto.
Lo siento si la explicación es mala. Si tiene alguna pregunta sobre cualquier código que necesite ver para solucionarlo, estaré encantado de proporcionarlo.
¡Gracias!


Actualizar ##

initial_activity.xml

  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="#1b5e20" android:gravity="center" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="200dp" android:layout_height="200dp" android:background="@drawable/logo" android:layout_gravity="center"/> </LinearLayout> 

Actualización 2

Solucionado el problema. Utilicé un Timertask y eso funcionó

 protected void onPostExecute(Long time) { final Intent i = new Intent(Splash.this, MainActivity.class); handler = new Handler(); timer = new Timer(); TimerTask timerTask = new TimerTask() { @Override public void run() { handler.post(new Runnable() { @Override public void run() { startActivity(i); finish(); } }); } }; if (SPLASH_DISPLAY_LENGHT - time > 0) timer.schedule(timerTask, SPLASH_DISPLAY_LENGHT - time); else timer.schedule(timerTask, 5000); } 

One Solution collect form web for “Pantalla de presentación en pantalla blanca en blanco al realizar AsyncTask”

Esta solución funcionó para mí

Para abrir la aplicación rápidamente necesitamos desactivar la ejecución instantánea … esto sucede para la API 23 (Marshmallow) y superior

Siga estos pasos para lo mismo:

archivo -> configuración -> construcción, ejecución, implementación -> Ejecutar instantáneo desactivar las cuatro opciones

  • ¿Cómo utilizar SQLite DB de AsyncTask?
  • Async tarea dentro de los fragmentos durante la pantalla oreintation
  • ¿Cómo esperar múltiples llamadas asincrales anidadas usando RxJava-Android?
  • Android AsyncTask en clase externa
  • ¿Cómo utilizar ExecutorService con Android AsyncTask?
  • IOS / Objective-C equivalente de Android AsyncTask
  • ¿Cuál es la forma correcta de implementar AsyncTask? Estática o no estática clase anidada?
  • Loopj Android Async Http - onFailure no disparado
  • Devolver un valor de AsyncTask en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.