2017-01-06 1 views
0

Eclipseでは、TimeLineとKeyFrameを使用して、コードの実行を遅らせることができます。たとえば、使用したメディアを再生する前に4秒待つことができますこのコード:Androidで新しいスレッドを使用せずにコードの実行を遅らせる方法

Timeline timeline = new Timeline(); 
KeyFrame keyframe = new KeyFrame(Duration.millis(4000), DelayAnimation -> 
{ 
    GeneralMethods PlayMusic = new GeneralMethods(); 
    PlayMusic.playMusic(mediaPlayer); 
}); 

timeline.getKeyFrames().add(keyframe); 
timeline.play(); 

以前のコードでは、Eclipseで正常に動作し、私は新しいスレッドを作成する必要はありませんでした。

私の質問は、Androidでのコードの実行を遅らせる同様の方法はありますか?

私はコードの実行を遅らせる方法を見つけましたが、ハンドラを使用して、つまり新しいスレッドを作成しています。私は糸を使わずに延期したいと思いますが、それは可能でしょうか?

+1

Aハンドラは –

+0

が –

答えて

0

ハンドラーはスレッド内の何かを遅延させるために使用します。次の場合、ハンドラはUI TextViewを10秒間待ってから消えるようにします。

private void makeTextViewDisappear(){ 
yourTV.setVisibility(View.VISIBLE); 
new Handler().postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        yourTV.setVisibility(View.INVISIBLE); 
     // OR yourTV.setVisibility(View.GONE) to reclaim the space 
       } 
      }, 10000); 
} 

ご覧のとおり、新しいスレッドはありません。

+0

はありがとう、それを明確にしていただきありがとうございます....新しいスレッドを作成しません。私が見つけたコードは新しいスレッドを使用していましたが、あなたのコードでは、ハンドラによって管理されている実行可能ファイルだけが存在しないことがわかります。私は、ハンドラに代わるものがあるかどうか、またはハンドラが遅延を挿入する唯一の方法であるかどうか疑問に思っていましたか? –

0

Thread.sleep(10000)

それは10秒で、あなたの現在のスレッドが遅れます

+0

本当にメインスレッドでこれをやりたいですか? –

+0

ありがとうGirish。私は最初の試みとして睡眠方法を使用しましたが、うまくいきませんでした。タイムラインとKeyFrameとしてAndroidに代替機能があるかどうか疑問に思っていた –

関連する問題