gpt4 book ai didi

android - 处理程序正在阻止 Activity 完成

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:49 26 4
gpt4 key购买 nike

我已经声明了 private Handler mHandler = new Handler();并在我的 Activity 中多次使用此处理程序。例如:

        // fade out view nicely after 5 seconds
mHandler.postDelayed(new Runnable() {
public void run() {
tview.setText(null);
}
}, 4000);

mHandler.postDelayed(new Runnable() {
public void run() {
tview.setText(null);
parentLayout.findViewById(R.id.fireplace).setVisibility(View.GONE);
parentLayout.removeView(findViewById(R.id.fireplace));
water_room.setVisibility(View.VISIBLE);
playSound(fountainSoundID);
}
}, 3000);

现在,如果我在这个处理程序已经开始它的操作时返回(通过按后退按钮),因为这个处理程序 Activity 没有完成。我希望 mHandler 停止它正在做的任何事情并且不阻止 Activity 完成。我该怎么做?

最佳答案

How do I do that?

我不太明白你想说什么,但如果我理解正确,你需要覆盖 onBackPressed()方法,在这里您将停止 Handler 并完成 Activity。

伪代码:

@Override
public void onBackPressed() {
// stop Handler
handler.removeCallbacks(runnable);
// to stop anonymous runnable use handler.removeCallbacksAndMessages(null);
finish();
}

由于您的Runnable 是匿名的,您需要使用第二种方法:

handler.removeCallbacksAndMessages(null);

如果你对这个方法感到困惑,这里是它的文档:

Remove any pending posts of callbacks and sent messages whose obj is token. If token is null, all callbacks and messages will be removed.

关于android - 处理程序正在阻止 Activity 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20376937/

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