6

ハンドラーを使用して定期的に実行したい カウントが 0 の場合、カウントが 1 の場合、そうでない場合は、このコードを修正してください。

mRunnable = new Runnable(){
  @Override
  public void run() {
    if (count == 0) {
      setImage();
      count = 1;
    } else {
      weather = mContentResolver.getType(mUri);
      setWeather(weather);
      count = 0;
    }
  } 
};
mHandler = new Handler();
mHandler.postDelayed(mRunnable, 3000);
4

3 に答える 3

9

以下を試してください

m_Handler = new Handler();
mRunnable = new Runnable(){
    @Override
    public void run() {
        if(count == 0){
            // do something
            count = 1;
        }
        else if (count==1){
            // do something
            count = 0;
        }
        m_Handler.postDelayed(mRunnable, 3000);// move this inside the run method
    } 
};
mRunnable.run(); // missing

こちらもチェック

タイマーの Android スレッド

于 2013-07-31T05:36:46.437 に答える
4

その場合は、 TimerTimerTaskを使用する必要があります。以下に小さな例を示します。

//Declare the timer
Timer t = new Timer();
//Set the schedule function and rate
t.scheduleAtFixedRate(new TimerTask() {

    @Override
    public void run() {
        //Called each time when 1000 milliseconds (1 second) (the period parameter)
        //put your code here
    }

},
//Set how long before to start calling the TimerTask (in milliseconds)
0,
//Set the amount of time between each execution (in milliseconds)
3000);

これがあなたが必要としていたものであることを願っています。

于 2013-07-31T05:07:07.597 に答える