1

我试过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 放在那里)。我不太了解线程。

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

我该如何解决这个问题?

谢谢

4

2 回答 2

1

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

myHandler.postDelayed(runnableforadd, 60000);

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

于 2012-06-05T21:17:58.190 回答
0

你试过了吗AlarmManager?AlarmManager 将帮助您在一段时间后执行您的代码。

于 2012-06-05T21:14:40.077 回答