2012-01-28 15 views

答えて

2

ここでは、これを実現するためにタイマーを使用する簡単な静的メソッドがあります。あなたは振動の時間と振動の時間を渡します。電話機はrepeatCount回の間に100分ごとにrepeatPeriodSeconds回振動します。

public static void repeatVibrate(final int repeatCount, int repeatPeriodSeconds) 
    {   
     TimerTask task = new TimerTask() 
     { 
      private int repeats = 0; 

      @Override 
      public void run() 
      { 
       ++repeats; 
       Alert.startVibrate(100); 
       if(repeats >= repeatCount) 
       { 
        cancel(); 
       }     
      } 
     }; 
     Timer timer = new Timer(); 
     timer.scheduleAtFixedRate(task, 0, repeatPeriodSeconds * 1000L); 
    } 

ここでは、関連するクラスのドキュメントです:、AlertTimerTimerTask

+0

私はこのコードを2ndScreen extend MainScreenに入れました。しかし、それは第一画面(MainScreenも拡張)と他のすべての画面に効果があります。私は選択した画面に対してのみ効果があるようにしたい。助けてください –

+0

新しいスクリーンに行くつもりなら、最初にtimarTask.cancel();を呼び出してください。次の画面に移動します(画面を押すことを意味します)。それ以外の場合はバックグラウンドで実行されます(前の画面がポップアップしないため)。 – alishaik786

+0

@ alishaik786しかし、第1画面については、それがバックグラウンドで実行されるのを防ぐ方法はありますか? –

2

これは、あなたを助けます:プッシュ新しい画面の前に

public class LoadingScreen extends MainScreen 
{ 
Timer timer; 
TimerTask timerTask; 
public LoadingScreen() 
{ 
    setTitle("Loading Screen"); 
    callTheTimer(); 
} 

public void callTheTimer() 
{ 
    timer=new Timer(); 
    timerTask=new TimerTask() 
    { 
     public void run() 
     { 
      Alert.startVibrate(500); 
     } 
    }; 
    timer.scheduleAtFixedRate(timerTask, 0, 3000);//For 10 secs give 10000; I am testing this for every 3 secs; 
} 
} 

または現在の画面を閉じるには、timertask.cancelを与えます( );

関連する問題