gpt4 book ai didi

java - 关闭处理程序,删除回调

转载 作者:行者123 更新时间:2023-12-02 06:04:54 27 4
gpt4 key购买 nike

在我的应用程序中,我有一些 Activity 。问题是,当我想关闭应用程序时,我的其中一个 Activity 不会终止,而当我重新打开应用程序时,会首先启动该 Activity 。

就我而言,这可能是使用 Handler 的问题。

在此 Activity 中,我在 onTouchListener 中使用 Handler,在按下按钮时使用 Runnable 旋转图像。释放按钮后,我删除回调并调用另一个方法来启动下一个 Activity 。

    public void ListenTo(){
MatchTime.setOnTouchListener(new OnTouchListener(){
long time_start=0;
long time_end=0;

@Override
public boolean onTouch(View view, MotionEvent event) {

matchHandler = new Handler();
if (event.getAction() == MotionEvent.ACTION_DOWN ) {
time_start=System.currentTimeMillis();
matchHandler.post(matchAction);
return true;
}
if (event.getAction() == MotionEvent.ACTION_UP ) {
time_end=System.currentTimeMillis();
long TimeCounted=time_end-time_start;
matchHandler.removeCallbacks(matchAction);
matchHandler = null;
SaveAndSend(TimeCounted);
return true;
}
return false;
}
Runnable matchAction = new Runnable() {
@Override public void run() {
Face = (ImageView) findViewById(R.id.MatchTimeImage);
Face.setRotation(Face.getRotation()+9);
matchHandler.postDelayed(this, 25);
}
};
});
}

我的问题是:

我做错了什么,Handler 线程在 Android 自行终止之前不会停止?

最佳答案

根据我的经验,这非常有效!

handler.removeCallbacksAndMessages(null);

在removeCallbacksAndMessages的文档中它说......“删除所有 obj 为 token 的待处理回调和已发送消息。如果 token 为 null,则所有回调和消息都将被删除。”

请参阅此帖子 removeCallbacksAndMessages

关于java - 关闭处理程序,删除回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22375342/

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