如何每隔x小时或分钟调用onClick方法?(Android)



我是初学者。在我的应用程序中,我有一个按钮,从类到MainActivity获取一个统计数据,并在textview上设置文本。在方法中,onClick也调用了其他方法。一切都很好,我可以手动单击按钮并获取所有信息,但我想添加自动呼叫onClick方法,例如每1小时。我读到关于AlarmManager和Timer来做到这一点,但我不知道如何在我的情况下实现它。

下面的代码使用方法onClick。它在OnCreate的MainActivity上

statsBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
UStats.printCurrentUsageStatus(MainActivity2.this);
long time = UStats.printCurrentUsageStatus(MainActivity2.this);
if (time >= 300000)
{
sendOnChannel1();
}
String total="";
long sec=time/1000;
long day;
long hour;
long min;
if(sec>=(86400)){
day=sec/86400;
sec=sec%86400;
total=total+day+"d ";
}
if(sec>=3600){
hour=sec/3600;
sec=sec%3600;
total=total+hour+"h ";
}
if(sec>=60){
min=sec/60;
sec=sec%60;
total=total+min+"min ";
}
if(sec>0)
{
total=total+sec+"s";
}
facebook_time.setText(String.valueOf(total));
saveData();
}
});

或者如何创建与按钮相同的方法,然后这个方法将每小时调用一次?我只是想更新textview自动每隔一段时间。

可以使用处理程序和可运行程序。尝试以下步骤:

  1. Runnable,intHandler类中创建3个变量,如下所示:
private Runnable mRunnable;
private Handler mHandler;
private int seconds = 5; // this is the seconds of how much time the click listener with be called
  1. onCreate()中像这样初始化它:
mRunnable = () -> {
yourButton.onClick();
mHandler.postDelayed(mRunnable, seconds * 1000);
}
mHandler = new Handler();
  1. 您还需要启动处理程序。所以,用这个启动它。我更喜欢在onCreate():
  2. 中使用这个
mHandler.postDelayed(mRunnable, seconds * 1000);

相关内容

最新更新