我正在开发一个需要打字机动画的应用程序,我在互联网上找到了一些可以产生打字机效果的代码片段,但我注意到当我连续运行该应用程序时,打字机效果变慢了。我知道这是因为 typeWriter 效果中使用了 postDelay 方法。请帮助我如何在使用 postDelay 时管理内存。
这是我用于 typeWriter 效果的代码
private Handler mHandler = new Handler();
private Runnable characterAdder = new Runnable() {
@Override
public void run() {
tv.setText(mText.subSequence(0, mIndex++));
if(mIndex <= mText.length()) {
mHandler.postDelayed(characterAdder, mDelay);
}
}
};
public void animateText(CharSequence text) {
mText = text;
mIndex = 0;
tv.setText("");
mHandler.removeCallbacks(characterAdder);
mHandler.postDelayed(characterAdder, mDelay);
}
public void setCharacterDelay(long millis) {
mDelay = millis;
}