30秒后如何在android中获取位置信息?

大肚子
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;


import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.support.v4.content.LocalBroadcastManager;
import android.util.Log;
import android.widget.Toast;

public class LocationService extends Service {

    private LocationDatabaseHelper mLocationDatabaseHelper;
    private LocationModel mLocationModel;
    private Date mDate;
    private Handler mHandler = new Handler();
    private Timer mTimer = null;
    private int mCount = 0;

    public static final long NOTIFY_INTERVAL = 30 * 1000;

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        // cancel if already existed
        if (mTimer != null) {
            mTimer.cancel();
        } else {
            // recreate new
            mTimer = new Timer();
        }

        mLocationModel = LocationModel.getInstance();
        // schedule task
        mTimer.scheduleAtFixedRate(new TimeDisplayTimerTask(), 0, NOTIFY_INTERVAL);

    }

    @Override
    public void onDestroy() {
        mTimer.cancel();
    }

    private class TimeDisplayTimerTask extends TimerTask implements LocationListener {

        @Override
        public void run() {

            mHandler.post(new Runnable() {

                @Override
                public void run() {
                    //I send message to draw map here
                    sendMessage();
                    LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
                    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
                            TimeDisplayTimerTask.this);

                }

            });
        }

        @Override
        public void onLocationChanged(Location location) {
            // I get location and do work here

        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub

        }

    }

    private void sendMessage() {
          Intent intent = new Intent("my-event");
          intent.putExtra("message", "data");
          LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
        }
}

我想要的是每30秒获取一次用户位置,但是此代码无法正常运行。它的位置非常快(我想每秒)。

我尝试以这种方式获取位置信息,因为它可以在启动我的应用程序后立即获取我的当前位置。我之前曾尝试过getLastKnowLocation,但是它给了我最后一个已知的位置,该位置离我的位置很远。

请告诉我如何解决此问题。谢谢!

贝卡

在requestLocationUpdates方法中,第二个参数是位置更新之间的最小时间间隔(以毫秒为单位),因此您只需要执行以下操作:

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 30 * 1000, 0, TimeDisplayTimerTask.this);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取HTML元素的位置信息

来自分类Dev

如何在Android中获取设备功能信息?

来自分类Dev

当我们通过Android中的GPS获取位置信息时,如何获取卫星名称或号码?

来自分类Dev

无法在Android中使用Geocoder和GPS获取位置信息

来自分类Dev

在Python中解析HTML时获取位置信息

来自分类Dev

在CustusX中获取视频源/探针的视频帧的位置信息

来自分类Dev

如何在RecyclerView CardView Android中获取商品信息

来自分类Dev

Android:使用wifi获取位置信息对电池的影响;没有实际连接

来自分类Dev

每10秒更新一次用户位置-从mysql中获取位置信息

来自分类Dev

在Android Webview的navigator.geolocation.getCurrentPosition()中获取“位置信息不可用”错误

来自分类Dev

Android在应用小部件中获取位置信息-locationManager似乎在一段时间后停止工作

来自分类Dev

如何在没有互联网的情况下在phonegap中获得地理位置信息?

来自分类Dev

Android:如何在其他活动中从textView设置信息

来自分类Dev

如何在iOS中从Google获取位置信息?

来自分类Dev

无法在Android中使用Geocoder和GPS获取位置信息

来自分类Dev

如何在Android代码中获取指令集信息?

来自分类Dev

定期获取位置信息的Android应用程序

来自分类Dev

在CustusX中获取视频源/探针的视频帧的位置信息

来自分类Dev

Twitter Json Data中的位置信息

来自分类Dev

如何获取Google自动填充功能以返回位置信息

来自分类Dev

正在获取Android位置信息?

来自分类Dev

用户允许使用位置信息后,如何更新视图

来自分类Dev

第一次在棉花糖中启动应用程序时如何获取位置信息

来自分类Dev

如何获取用户浏览器的详细信息,IP地址和位置信息?

来自分类Dev

如何在android中获取Facebook信息

来自分类Dev

如何在每 30 秒后更改 Javascript 中的变量值

来自分类Dev

如何在Android中显示10秒后消失的图片?

来自分类Dev

如何在android中十秒后禁用按钮?

来自分类Dev

如何从 unsplash API 获取图像的位置信息?

Related 相关文章

  1. 1

    如何获取HTML元素的位置信息

  2. 2

    如何在Android中获取设备功能信息?

  3. 3

    当我们通过Android中的GPS获取位置信息时,如何获取卫星名称或号码?

  4. 4

    无法在Android中使用Geocoder和GPS获取位置信息

  5. 5

    在Python中解析HTML时获取位置信息

  6. 6

    在CustusX中获取视频源/探针的视频帧的位置信息

  7. 7

    如何在RecyclerView CardView Android中获取商品信息

  8. 8

    Android:使用wifi获取位置信息对电池的影响;没有实际连接

  9. 9

    每10秒更新一次用户位置-从mysql中获取位置信息

  10. 10

    在Android Webview的navigator.geolocation.getCurrentPosition()中获取“位置信息不可用”错误

  11. 11

    Android在应用小部件中获取位置信息-locationManager似乎在一段时间后停止工作

  12. 12

    如何在没有互联网的情况下在phonegap中获得地理位置信息?

  13. 13

    Android:如何在其他活动中从textView设置信息

  14. 14

    如何在iOS中从Google获取位置信息?

  15. 15

    无法在Android中使用Geocoder和GPS获取位置信息

  16. 16

    如何在Android代码中获取指令集信息?

  17. 17

    定期获取位置信息的Android应用程序

  18. 18

    在CustusX中获取视频源/探针的视频帧的位置信息

  19. 19

    Twitter Json Data中的位置信息

  20. 20

    如何获取Google自动填充功能以返回位置信息

  21. 21

    正在获取Android位置信息?

  22. 22

    用户允许使用位置信息后,如何更新视图

  23. 23

    第一次在棉花糖中启动应用程序时如何获取位置信息

  24. 24

    如何获取用户浏览器的详细信息,IP地址和位置信息?

  25. 25

    如何在android中获取Facebook信息

  26. 26

    如何在每 30 秒后更改 Javascript 中的变量值

  27. 27

    如何在Android中显示10秒后消失的图片?

  28. 28

    如何在android中十秒后禁用按钮?

  29. 29

    如何从 unsplash API 获取图像的位置信息?

热门标签

归档