2012-03-20 10 views
1

[OK]を、ので、私はこのチュートリアルを使用して、非常に単純なスプラッシュ画面を作成:アンドロイド:スプラッシュ画面2ページ目にアプリを再開くアプリはスプラッシュスクリーンの間に終了した場合でも

http://p-xr.com/android-tutorial-how-to-make-a-basic-splash-screen/

問題があればということですスプラッシュ画面期間中にユーザがホームボタンまたは戻るボタンを押してアプリケーションを終了すると、ユーザは終了しなかった場合にスプラッシュ画面が終了した後に第2画面に再び開きます。

私のコードはチュートリアルのものです。どんな助け?

おかげ

+0

「間違っていますか?どのように? – LiverpoolFTW

+0

シームレスなユーザーエクスペリエンスの仕方で間違っていて、通常は機能的に無意味で、ほとんどの場合は単にタイマーが待っています(ユーザーも待っています) – njzk2

答えて

2

私はより良いライフサイクルメソッドを利用するようにコードを変更しました。それを楽しんだ。 :)

public class SplashScreen extends Activity { 

     protected int _splashTime = 5000; 

     private Thread splashTread; 

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


      final SplashScreen sPlashScreen = this; 

      // thread for displaying the SplashScreen 
      splashTread = new Thread() { 
       @Override 
       public void run() { 
        try {     
         synchronized(this){ 
          wait(_splashTime); 
         } 

        } catch(InterruptedException e) {} 
        finally { 

         if(!isFinishing()) // This pretty useful boolean val tells if 
//user has pressed the back button. very useful. 
         {Intent i = new Intent(SplashScreen.this, Main.class); 

         startActivity(i); 
         finish(); 
         } 


         stop(); 
        } 
       } 
      }; 

      splashTread.start(); 
     } 
     @Override 
     public boolean onTouchEvent(MotionEvent event) { 


      if (event.getAction() == MotionEvent.ACTION_DOWN) { 
       Toast.makeText(this,"exec---",Toast.LENGTH_LONG).show(); 
       synchronized(splashTread){ 
        splashTread.notifyAll(); 
       } 
      } 
      return true; 
     } 
     @Override 
     protected void onPause() { 

      super.onPause(); 

      if(splashTread.getState()==Thread.State.TIMED_WAITING){ 
       //Thread is still waiting and Activity is paused. Means user has pressed Home. Bail out 
       finish(); 
      } 

     } 
    } 

私の見解では、スプラッシュスクリーンの使用は頻繁ではありませんが、多分必要です。画面の後ろに重い作業をしている場合(ゲームなど)。

+0

ありがとう、ありがとうございます。現在のスプラッシュ画面は役に立たない(なぜ私は人々が好きではないのか理解している)が、これを持っている理由は1つです。私が働いている人は2です。サーバー(画像がたくさんあるので時間がかかるかもしれません)。また、私はアプリの開発者には新しいと1つを実装し、どのように知っていることが楽しいと思った – LiverpoolFTW

+0

ようこそ。データが巨大であれば必要かもしれません。画像が読み込まれている間は、画像が読み込まれている間、ユーザーがあなたのアプリを使って作業を続けることができるように、「画像の遅延読み込み」(Romain Guy、Android Shelvesなどの非常に良い例があります)に行ってください。 – Akhil

+0

アドバイスをいただき、ありがとうございました。 – LiverpoolFTW

関連する問題