【问题标题】:Infinite calling some function after certain time一定时间后无限调用某个函数
【发布时间】:2012-06-05 21:06:07
【问题描述】:

我已经尝试过 time&timertask、handler&runnables,没有什么能让我的函数在特定时间后被调用。请帮我解决这个问题。

when = System.currentTimeMillis();
t1 = new Timer();
tt = new TimerTask(){@Override public void run(){ systemClick();}};
t1.scheduleAtFixedRate(tt, when+interval, interval);

还有这个:

final Handler myHandler = new Handler();

    Runnable runnableforadd  = new Runnable() 
    {
        public void run() 
        {
            systemClick();              
            myHandler.postDelayed(this, interval);
        }   
    };
    myHandler.postDelayed(runnableforadd, when + interval);

我在 onCreate() 中执行的第一个和第二个。 systemClick() 一次也没有被调用(我已经把 Toast 放在那里了)。我不太了解 Threads。

systemClick - 是一个函数,系统执行点击我的按钮 - myButton.performClick() 在那里被调用(以及其他函数)。

我该如何解决这个问题?

谢谢

【问题讨论】:

    标签: android multithreading sleep repeat period


    【解决方案1】:

    延迟时间的值应该是您希望方法等待的值。例如,如果您想在等待 1 分钟后调用您的方法,则传递 60000。

    myHandler.postDelayed(runnableforadd, 60000);
    

    目前您在 System.currentTimeMillis() 的延迟时间中添加“等待”,这意味着您的方法将在大约“1338900000000”毫秒后被调用

    【讨论】:

      【解决方案2】:

      你试过AlarmManager。 AlarmManager 将帮助您在一定时间后执行您的代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多