代码之家  ›  专栏  ›  技术社区  ›  Taranfx

线程运行中的处理程序

  •  5
  • Taranfx  · 技术社区  · 16 年前

    我是新来安卓的,请接受。

    我有一个TimerTask,我在服务中为它定义run()。正在调用Inside run()

    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
        LOCATION_UPDATES_MIN_TIME_MS, LOCATION_UPDATES_MIN_DISTANCE_M, gpsListener);
    

    编辑:代码段

    locationTask = new TimerTask() {
    
            @Override
            public void run() {
                Log.d(Commands.TAG, "Running location Task");
                myLocationProvider = new MyLocationProvider(locationManager, handler, MyService.this);
                myLocationProvider.start();
                myLocationProvider.stop();
            }
        };
    

    稍后的日程安排如下:

    locationTimer = new Timer();
      locationTimer.schedule(locationTask, 10000, cmds.getAlertInterval()*60);
    

    2 回复  |  直到 16 年前
        1
  •  4
  •   EboMike    16 年前

    您需要从具有循环器的线程(最好是主线程)中调用requestLocationUpdates。(requestLocationUpdates本身速度很快,不会阻塞,所以这样做并不丢脸)。

    文档中有一个示例,它应该非常符合您的需要: http://developer.android.com/resources/articles/timed-ui-updates.html

    Activity.runOnUiThread()