Java 如果调用Cancel或stop相同的函数,则如果当前在Android中运行,则重新启动

Java 如果调用Cancel或stop相同的函数,则如果当前在Android中运行,则重新启动,java,android,performance,android-intent,android-activity,Java,Android,Performance,Android Intent,Android Activity,在Android中,如果调用了一个已经运行的函数,如何取消/停止该函数,然后从头开始启动它 我的代码如下所示,基本上在我的整个应用程序中,给定的函数都很重要;调用,而不是让该函数运行多次,或者如果当前正在运行,则阻止用户再次运行该函数。我想取消/停止当前正在运行的函数,然后重新启动它 我该怎么做呢 代码: 我已经尝试了下面使用布尔值的方法。但它只是阻止用户再次运行该功能(如果已经运行)?这不是我想要做的 我想,当函数再次调用时。运行功能停止。然后刚被处决 代码: F.Y.I 在我的整个应用程序中

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

我的代码如下所示,基本上在我的整个应用程序中,给定的函数都很重要;调用,而不是让该函数运行多次,或者如果当前正在运行,则阻止用户再次运行该函数。我想取消/停止当前正在运行的函数,然后重新启动它

我该怎么做呢

代码:

我已经尝试了下面使用布尔值的方法。但它只是阻止用户再次运行该功能(如果已经运行)?这不是我想要做的

我想,当函数再次调用时。运行功能停止。然后刚被处决

代码:

F.Y.I

在我的整个应用程序中,除了上面提到的以外,还会多次调用Important,有时在Important仍在运行时调用。因此,有必要解决我的问题:-


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

您可以在UI线程上使用,并向其发布消息或可运行文件。将重要函数中的每个离散操作都设置为消息或可运行,其中包含一个函数,例如resetVariables、formatThePage等。每当您再次调用该函数时,只要调用处理程序,它就会删除所有尚未执行的操作。

我不明白您为什么要这样做

对此没有一个简单的答案。可能有效的解决方案是这样的

public void Important() {
if (runningCode == false) { 
    runningCode = true;
    //Do lots of stuff
    runningCode = false;
} else {
    // stop current code from execution
    runningCode = false;
    Important();
}

但您必须找到自己的代码来停止当前的执行,因为它可能会导致对象的状态被破坏等等。

听起来很棒,请您通过上面解释的编码示例进行解释。这并不能满足我的需要。我想,当函数再次调用时。运行功能停止。然后刚被处决
Boolean runningCode = false;
    public void Important() {
if (runningCode== false) { 
runningCode = true;
    //Do lots of stuff
runningCode = false;
    }
public void Important() {
if (runningCode == false) { 
    runningCode = true;
    //Do lots of stuff
    runningCode = false;
} else {
    // stop current code from execution
    runningCode = false;
    Important();
}