Android 使用可更新UI的ScheduledExecutorService重复执行任务

Android 使用可更新UI的ScheduledExecutorService重复执行任务,android,scheduled-tasks,Android,Scheduled Tasks,我试图在我的应用程序中每隔2分钟执行一个任务,在阅读了一些实现方法之后,我选择使用ScheduledExecutorService,但我可以让它更新UI。我做错了什么 代码如下: public class ScheduledTask { private final String TAG="ScheduledTask"; private final ScheduledExecutorService scheduler = Executors.newScheduledThread

我试图在我的应用程序中每隔2分钟执行一个任务,在阅读了一些实现方法之后,我选择使用ScheduledExecutorService,但我可以让它更新UI。我做错了什么

代码如下:

public class ScheduledTask {

private final String TAG="ScheduledTask";
private final ScheduledExecutorService scheduler =
         Executors.newScheduledThreadPool(1);
private Context context;
private Activity activity;

public ScheduledTask(Context c, Activity a)
{

    this.context=c;
    this.activity=a;
}

 public void RefreshMapPeriodically() 
 {

     final ScheduledFuture refreshHandle =
       scheduler.scheduleAtFixedRate(new Runnable() 
     {
           public void run() 
          { 

               //iau din baza de date sqlLite locala semnele apropiate de locatia mea
               NotificationAdministration notify=new NotificationAdministration(context);
               final ArrayList<SpeedRestriction> lista=notify.getNotificationFromLocalArea(MainActivity.CURRENT_LOCATION.getLatitude(), MainActivity.CURRENT_LOCATION.getLongitude());
               Log.i(TAG,"Run! Preluare din db");



               if(activity !=null)
               {
                   // If you need update UI, simply do this:
                   ((Activity)context).runOnUiThread(new Runnable() {
                       public void run() 
                       {
                           //le adaug pe harta
                            UpdateLocalMap.setSpeedMarkers(lista,MainActivity.getGoogleMap() , MainActivity.getMarkere());
                       }
                   });
               }
          }
     }, 0, 1, MINUTES);

     scheduler.schedule(new Runnable() {
       public void run() 
       { 
           refreshHandle.cancel(true); 
       }
     }, 60 * 60 * 2, SECONDS);
   }

您希望这是什么时间间隔:60*60*2秒2小时后完成任务。
ScheduledTask doRefresh=new ScheduledTask(context,this);
             doRefresh.RefreshMapPeriodically();