代码之家  ›  专栏  ›  技术社区  ›  Abd Abughazaleh

Android&Javascript webview超时调用更多时间

  •  2
  • Abd Abughazaleh  · 技术社区  · 6 年前

    var timer = null;
    
    timer = timerAction();
    
    $(window).click(function () {
        clearTimeout(timer);
        timer = timerAction();
    });
    
    function timerAction() {
        return setTimeout(function () {
            showToast("Timeout relogin agagin");
            loadNewPage('LoginActivity');
        }, 10000);
    } 
    

    我的android代码转到另一个页面:

    @JavascriptInterface
    public void loadeNewPage(String page) {
        if (page.equalsIgnoreCase("MainMenuActivity")) {
            Intent intent = new Intent(context, MainMenuActivity.class);
            finish();
    
            startActivity(intent);
    
        }
    }
    

    我的问题,例如:如果我在屏幕超时时单击10次,它将再次调用10次。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Basil jose    6 年前

    我知道现在有点晚了,请仔细检查一下,可能会对你有所帮助

     function Timeout(fn, interval) 
        {
    
            var id = setTimeout(fn, interval);
            this.cleared = false;
            this.clear = function () {
                this.cleared = true;
                clearTimeout(id);
            };
        }
    
        var t = new Timeout(function () 
        {
           console.log("Cleared function");
           t.clear();
           showToast("Timeout relogin again");
           loadNewPage('LoginActivity');
    
        }, 5000);
    
    
    
        $(window).click(function () {
            if (t.cleared) 
            {
                t = new Timeout(function () 
                     {
                      console.log("Cleared function");
                      t.clear();
                       showToast("Timeout relogin again");
                       loadNewPage('LoginActivity');
    
                    }, 5000);
    
            }
            else {
                console.log("one time out funtion already running ");
            }
    
        });