2010-08-27 81 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(); 
}

這種方法似乎效果很好。