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

  • Actualizar la interfaz de usuario de Android desde un subproceso de otra clase
  • AndroId MediaPlayer método prepareAsync
  • Cola sin bloqueo de solicitudes HTTP POST con persistencia
  • Android - Llamadas de red asíncronas - Respuesta dependiente entre sí
  • Android AsyncTask en clase externa
  • IOS / Objective-C equivalente de Android AsyncTask
  • ¿Cómo utilizar SQLite DB de AsyncTask?
  • La llamada a API no funciona dentro de Anko Async
  • Biblioteca de clientes API de REST para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.