2017-07-04 1 views
0

Der Begrüßungsbildschirm 3 Sekunden dauern soll, aber es ist es fast vollständig übersprungen, wenn die App auf Genymotion Emulator oder Android Studios Emulator beide Emulatoren laufen wird laufen perfekt mit anderen Anwendungen. Ich verstehe nicht?Splash Screen zu schnell anzuzeigen und dann in die nächste Java-Klasse gehen

SplashScreen.java

package com.transcendencetech.juliospizzaprototype; 
 

 
import android.content.Intent; 
 
import android.os.Bundle; 
 
import android.os.Handler; 
 
import android.support.v7.app.AppCompatActivity; 
 
import android.view.Window; 
 

 
/** 
 
* Created by Stormy Forrester on 20/03/2016. 
 
*/ 
 
public class SplashScreen extends AppCompatActivity { 
 

 
    /** Called when the activity is first created. */ 
 
    @Override 
 
    public void onCreate(Bundle savedInstanceState) { 
 
    super.onCreate(savedInstanceState); 
 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
 
    setContentView(R.layout.splash_screen); 
 

 
    int secondsDelayed = 4; 
 
    new Handler().postDelayed(new Runnable() { 
 
     public void run() { 
 
     startActivity(new Intent(SplashScreen.this, 
 
      SignInActivity.class)); 
 
     finish(); 
 
     } 
 
    }, secondsDelayed * 3); 
 
    } 
 
}

** splash_screen, xml **

+3

die Verzögerung Millisekunden zu ändern. 4 Sekunden sind 4000 Millisekunden – Blackbelt

+0

int SekundenVerzögert = 4000; und entfernen Sie die * 3 – yanivtwin

Antwort

1

sollte Ihr Begrüßungsbildschirm Code mag diese

new Handler().postDelayed(new Runnable() { 

     /* 
     * Showing splash screen with a timer. This will be useful when you 
     * want to show case your app logo/company 
     */ 

     @Override 
     public void run() { 
      Intent mainIntent = new Intent(SplashScreenClass.this, Homescreen.class); 
      startActivity(mainIntent); 
      finish(); 
      // close this activity 
     } 
    }, 3000); 

beacuse die Verzögerung verwendet in Handler in Millisekunden.

+0

Aus Gründen der Klarheit würde ich 'TimeUnit.SECONDS.toMillis (3)' verwenden – SpaceBison

0

ändern variable Form

int secondsDelayed = 4; 

zu

int secondsDelayed = 4000; 
1

Sie sollten Ihre Sekunden (zB 4) mit 1000

multiplizieren Weil Sie es in Millisekunden geben.

Versuchen Sie, Ihren Code zu

@Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.splash_screen); 

    int secondsDelayed = 4; 
    new Handler().postDelayed(new Runnable() { 
     public void run() { 
     startActivity(new Intent(SplashScreen.this, 
      SignInActivity.class)); 
     finish(); 
     } 
    }, secondsDelayed * 1000); 
    } 
}