[英]how to call a function every 5 minutes?
我需要每 5 分鍾調用一次 speak 方法,然后我想在后台運行名為 callpeak 的異步方法,該方法回調 speak 方法(不同類的公共方法)。 它必須每 5 分鍾循環一次
class callSpeak extends AsyncTask<String, Void, String> {
activityAudio a = new activityAudio();
@Override
protected String doInBackground(String... strings) {
try
{
while (true){
a.speak();
Thread.sleep(300000);
}
}
catch (InterruptedException e)
{e.getMessage();}
return null;
}
}
如果您只想在應用程序打開時運行該方法,您可以簡單地使用TimerTask 。
Timer myTimer = new Timer ();
TimerTask myTask = new TimerTask () {
@Override
public void run () {
// your code
callSpeak().execute() // Your method
}
};
myTimer.scheduleAtFixedRate(myTask , 0l, 5 * (60*1000)); // Runs every 5 mins
如果您想在應用程序未運行的情況下在后台運行它,您可以使用AlarmManager並每 5 分鍾重復一次任務。
希望能幫助到你
你可以這樣做:
Handler mHandler = new Handler();
Runnable mRunnableTask = new Runnable()
{
@Override
public void run() {
doSomething();
// this will repeat this task again at specified time interval
mHandler.postDelayed(this, yourDesiredInterval);
}
};
// Call this to start the task first time
mHandler.postDelayed(mRunnableTask, yourDesiredInterval);
當您不再需要回調時,不要忘記從處理程序中刪除回調。
執行此操作的最新和最有效的方法是從 AndroidX 架構實現WorkManager
,即使您退出活動或關閉應用程序。
您可以在官方文檔中找到更多詳細信息: 使用 WorkManager 安排任務
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.