gpt4 book ai didi

Android,暂停和恢复处理程序回调

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:32:46 24 4
gpt4 key购买 nike

我有一个正在使用的处理程序,如下所示:

handler.postDelayed(Play, 1000);

当我的应用程序 onPause() 在此完成之前被调用时,我需要暂停它并告诉它在我恢复之前不要执行“postDelayed”。

这可能吗,或者有其他方法吗?

我的问题是,当 onPause() 被调用时,我暂停了音频 (SoundManager),但如果此 handler.postDelayed 在此之后被调用,音频将不会暂停,并将继续在我的应用程序后台播放。

@Override
public void onPause()
{
Soundmanager.autoPause()
}

然后 postDelayed 在 1000 毫秒后再次开始播放音频。

最佳答案

您需要继承 Handler 并实现暂停/恢复方法,如下所示(当您想暂停消息处理时只需调用 handler.pause(),并调用 handler.resume() 当你想重启它时:

class MyHandler extends Handler {
Stack<Message> s = new Stack<Message>();
boolean is_paused = false;

public synchronized void pause() {
is_paused = true;
}

public synchronized void resume() {
is_paused = false;
while (!s.empty()) {
sendMessageAtFrontOfQueue(s.pop());
}
}

@Override
public void handleMessage(Message msg) {
if (is_paused) {
s.push(Message.obtain(msg));
return;
}else{
super.handleMessage(msg);
// otherwise handle message as normal
// ...
}
}
//...
}

关于Android,暂停和恢复处理程序回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4428860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com