gpt4 book ai didi

java - 如果调用取消或停止相同的功能,然后重新开始(如果当前在 Android 中运行)

转载 作者:太空宇宙 更新时间:2023-11-04 14:22:16 26 4
gpt4 key购买 nike

在 Android 中,如果调用已在运行的函数,如何取消/停止该函数,然后从头开始启动它?

我的代码如下所示,基本上在我的应用程序中调用了给定的函数(Important();),但不是让该函数运行多次或阻止用户再次运行该函数(如果当前正在运行)。我想取消/停止当前正在运行的功能,然后重新启动它?

我怎样才能做到这一点?

代码:

public void Important() {
//Do lots of stuff
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Important();
}

@Override
protected void onResume() {
super.onResume();
Important();
}

我已经尝试过使用 boolean 值进行以下操作。但它只是阻止用户再次运行已经运行的函数? (这不是我想做的)

我想要,当函数再次被调用时。正在运行的功能被停止。然后新鲜执行

代码:

Boolean runningCode = false;
public void Important() {
if (runningCode== false) {
runningCode = true;
//Do lots of stuff
runningCode = false;
}

仅供引用

在我的应用程序中,Important() 被调用很多次(除了上述内容),有时当 Important() 仍在运行时。因此需要解决我的问题:-)

重置变量和格式化页面等任务是在Important();中执行的,它不是在单独的线程上运行。这些是需要在主 UI 线程上完成的任务

最佳答案

您可以使用 Handler在 UI 线程上并向其发布消息或 Runnables。使 Important() 函数中的每个离散操作成为包含函数的消息或 Runnable(例如,resetVariables()formatThePage()、 ETC)。每当您再次调用该函数时,只需调用 removeCallbacksAndMessages在处理程序上,它将删除所有尚未执行的操作。

关于java - 如果调用取消或停止相同的功能,然后重新开始(如果当前在 Android 中运行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27061491/

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