2010-08-27 86 views

回答

0

我最终放弃了Timer的方法,并用Handler代替android-labs

所以,与其产卵在我的活动的onCreateTimerTimerTask,我宣布本次非公开Handler与在线Runnable

private Handler _playRandomSoundHandler = new Handler(); 
private Runnable _playRandomSoundTask = new Runnable() { 
    public void run() { 
     SoundManager.playRandom(); 
     _playRandomSoundHandler.postDelayed(_playRandomSoundTask, Prefs.getDelayInMilliseconds(getApplicationContext())); 
    } 
};

此外,我不得不将代码添加到我的活动的onResume和:

@Override 
protected void onResume() { 
    super.onResume(); 
    _playRandomSoundHandler.postDelayed(_playRandomSoundTask, Prefs.getDelayInMilliseconds(this)); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    _playRandomSoundHandler.removeCallbacks(_playRandomSoundTask); 
    SoundManager.stop(); 
}

这种方法似乎效果很好。