2013-08-31 2 views
2

я нашел в this answer этот код:Заставка Android PhoneGap времени

super.onCreate(savedInstanceState); 
super.setIntegerProperty("splashscreen", R.drawable.splash); 
super.loadUrl("file:///android_asset/www/index.html",5000); 

И это работает, но как это, результат:

  • Заставка в течение 5 секунд

  • Черный экран, пока приложение не будет готово

  • index.htm л, когда приложение готово

Так мне было интересно, есть ли шанс запуска этого

super.loadUrl("file:///android_asset/www/index.html"); 

Как обратного вызова некоторой готовой функции, есть способ?

-EDIT-

Изменение его до 10 секунд не показывает мне черный экран, но я хотел бы показать index.html точно такой же момент, что приложение готово (не раньше, не намного позже: D)

+0

попробуйте с super.loadUrl (Config.getStartUrl(), 10000); –

+0

Я вижу, но таким образом мы не можем быть уверены, что приложение готово или если оно было готово некоторое время. –

+0

i означает, что вы пытаетесь увеличить время задержки от 5000 до 10000 –

ответ

0

Android не предоставляет никаких собственных API для работы с Splash Screen , но вы можете использовать Handler, чтобы показать поддельный экран заставки.

//load the splash screen 
    super.loadUrl("file:///android_asset/www/someSplashScreen.html"); 
    new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 
        // splash screen successfully timeout 
        //start new activity or load html layout 
        super.loadUrl("file:///android_asset/www/index.html"); 

     } 
    }, 4000);//timeout after 4 sec 
+0

Только один вопрос, почему 4 секунды задержки? дело в том, что я не хочу никакой дополнительной задержки вообще, я просто хочу использовать splashcreen как «загрузочный» образ :), если я поставлю 0, это достигнет этого? благодаря! –

+0

Я взял 4000ms, например, вы можете взять любое значение, которое хотите. – Shushant

+0

, если вы не хотите делать фоновый материал, тогда будет достаточно 200-800 мс, и в случае 0ms я думаю, что никакой всплеск не будет показан. – Shushant

0

Вы пытались это сделать?

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.os.Handler; 



    public class Splash extends Activity { 

      private final int SPLASH_DISPLAY_LENGHT = 1000; 

      /** Called when the activity is first created. */ 
      @Override 
      public void onCreate(Bundle icicle) { 
       super.onCreate(icicle); 
       setContentView(R.layout.splashscreen); 

       /* New Handler to start the Menu-Activity 
       * and close this Splash-Screen after some seconds.*/ 
       new Handler().postDelayed(new Runnable(){ 
        @Override 
        public void run() { 
         /* Create an Intent that will start the Menu-Activity. */ 
         Intent mainIntent = new Intent(Splash.this,Menu.class); 
         Splash.this.startActivity(mainIntent); 
         Splash.this.finish(); 
        } 
       }, SPLASH_DISPLAY_LENGHT); 
      } 
     } 
0

В вашей ссылке на предыдущий вопрос есть еще ссылка на Blog

Он утверждает, что с версией 1.8.0 из PhoneGap вы можете позвонить navigator.splashscreen.hide();

Проверьте блог (чтение через все это, так как он немного пропущен в первых двух абзацах).

1
 // Show LOGO ,start to MainActivity that watting for some seconds 
     new Handler().postDelayed(new Runnable() { 
      public void run() { 
       /* 
       * Create an Intent that will start the Main WordPress 
       * Activity. 
       */ 
       // 
       RedirectMainActivity(); 
      } 
     }, 4000); 
+2

вы знаете что-нибудь о телефонном разрыве – Simmant

+0

что? Не могли бы вы дать мне подробности! – RZMars

Смежные вопросы