我有一个处理程序和一个可运行对象,可运行对象每 5 秒向屏幕发布一次祝酒词,代码如下:
Handler handler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), "DISPLAY MESSAGE" + walking, Toast.LENGTH_SHORT).show();
handler.postDelayed(runnable, 5000);
}
};
在同一个活动中,我可以通过按下终止按钮来删除回调,调用它:
handler.removeCallbacks(runnable);
当上述被调用时,Toast 停止显示,所以到目前为止一切都很好。当我离开我的活动去另一个活动时,toast 消息会继续显示,这就是我想要的,但是当我回到创建可运行对象的第一个活动并按下终止按钮时,它不会删除可运行对象。离开和回来时,我无法再删除 runnable。
我已经尝试使用几乎所有在 SO 上使用 Handlers 和 runnables 的示例,但没有什么能帮助我解决这个问题。
可能是当我离开我的 Activity 并返回它时,它会创建新的可运行对象和处理程序对象吗?如果是这样,为什么初始可运行文件会继续运行?