`
zengyan2012
  • 浏览: 413805 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android 多线程刷新Location

阅读更多

我在做的一个功能是过几分钟就提交一次坐标到服务器,进行保存,跟踪司机地理位置。

 

 

主线程:

private static final String CONTEXT = Context.LOCATION_SERVICE; // 环境

LocationManager locationManager;

 

 

/** 获得LocationManager实例 */

public LocationManager getLocationManager() {

return (LocationManager) getSystemService(CONTEXT);

}

 

onCreate方法:

{

 

            Thread t = new Thread(new getLocation(provider));

t.setDaemon(true);// 设置为后台线程

t.start();

 

}

 

 

Handler h = new Handler() {

 

@Override

public void handleMessage(Message msg) {

LocationManager l = getLocationManager();

 

try {

String provider1 = getProvider(getLocationManager());

TimeUnit.MICROSECONDS.sleep(100);

l.requestLocationUpdates(provider1, 0, 0, locationListener);

 

Location location = l.getLastKnownLocation(provider1);

//打印效果。

System.out.println(location.getLatitude()

+ "{}{}{}{}{}{}{}{}___");

// 为绘制标志的类设置坐标,非常重要,刷新Location

mapOverlay.setLocation(location);

Thread t = new Thread(new getLocation(provider1));

t.start();

Thread.yield();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

super.handleMessage(msg);

}

};

 

private class getLocation implements Runnable {

 

 

@Override

public void run() {

Message m = new Message();

h.handleMessage(m);  // Handler的实例

Thread.yield();

}

}

 

getLocation 和handler 这2个线程,让他们相互调用,形成死循环状态。

mapOverlay.setLocation(location); 这个方法太重要了。。。

 

程序总是出现在线程错误,不知道哪位大侠能够指点下原因:

下面是截图

Error

 

  • 大小: 50.2 KB
分享到:
评论

相关推荐

    Android程序研发源码Android 沈阳公交源码.zip

    这为我们提供了学习多线程编程和网络请求处理的机会。 综上所述,通过分析"Android程序研发源码Android 沈阳公交源码.zip",开发者不仅可以深化对Android基础知识的理解,还能掌握到地图服务、定位服务、数据库操作...

    安卓Android源码——MIUI指南针.zip

    这可能涉及到`postInvalidate()`或`runOnUiThread()`等方法,确保在UI线程中安全地刷新视图。 7. **权限管理**:由于使用了传感器,应用需要在AndroidManifest.xml文件中声明`<uses-permission>`,例如`ACCESS_FINE...

    Android 简洁天气

    这个小案例涵盖了Android开发中的多个关键知识点,包括定位服务、网络请求、数据解析以及用户界面设计。下面将详细讲解这些核心内容。 1. 定位服务:在Android中,我们通常使用`FusedLocationProviderClient`来获取...

    Android-一个Android客户端在地图上展示你周围的Pokemon

    5. **异步处理与数据刷新**: 为了确保用户界面的流畅性,数据的获取和更新通常在后台线程中进行。Android的AsyncTask或者现代的LiveData和ViewModel组件可以用于实现这一目标。 6. **UI设计与Material Design**: ...

    Android 天气预报源码

    - AsyncTask:简单的异步任务可以使用Android内置的AsyncTask类,它提供了一种在后台线程执行任务并在UI线程更新结果的方式。 - Handler/Looper:对于更复杂的任务,可能需要使用Handler和Looper机制,以防止在...

    安卓android城市切换的demo

    - 需要处理权限问题,确保应用获得了`ACCESS_FINE_LOCATION`或`ACCESS_COARSE_LOCATION`权限。 2. **城市列表**: - 城市列表通常来源于服务器数据库或者本地资源文件,如CSV或JSON格式的数据。 - 数据结构设计...

    android查询天气源码

    为了获取用户当前的位置以便查询当地天气,可以使用Android的Location API或Google Play Services的FusedLocationProviderClient。获取到位置信息后,可以将其作为参数发送到天气API接口。 6. **异步处理**: ...

    安卓Android源码——自定义时钟.zip

    通过这个自定义时钟的例子,开发者可以学习到Android UI编程的基础,包括视图绘制、时间同步、多线程更新以及事件处理等关键技能。这些知识对于开发任何复杂的Android应用都是至关重要的。同时,自定义时钟也是提升...

    Android高级应用源码-对三个方向的加速度进行测量并实时绘制图像.zip

    6. **多线程处理**:由于传感器数据的获取和UI更新可能会影响主线程的性能,所以通常需要在后台线程处理传感器数据,然后通过Handler或Runnable将更新推送到UI线程。 7. **权限管理**:在AndroidManifest.xml中,...

    Android 指南针程序.zip源码资源下载

    7. **权限管理**:在AndroidManifest.xml中,需要声明使用传感器的权限,例如 `<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />`,因为访问传感器可能涉及到位置信息。 8. **线程管理...

    Android应用源码12306列车车次余票查询.zip

    在Android应用开发中,12306列车车次余票查询是一个常见的需求,它涉及到网络请求、数据解析、UI展示等多个技术环节。这个压缩包文件"Android应用源码12306列车车次余票查询.zip"很可能包含了一个完整的Android项目...

    Android对三个方向的加速度进行测量并实时绘制图像源码.zip

    在AndroidManifest.xml中声明`android.permission.ACCESS_FINE_LOCATION`或`android.permission.BODY_SENSORS`权限,并在运行时请求用户授权。 8. **调试与测试** 在开发过程中,使用Android模拟器和实际设备进行...

    简单天气预报demo

    通过这个"简单天气预报demo",开发者可以学习到如何集成网络请求、解析JSON、处理地理位置、更新UI等多个Android开发核心技能,同时也能了解如何将这些组件整合到一个实际的应用中。对于初学者来说,这是一个很好的...

    androd4.0源码

    - **多线程和并发**:研究如何在Android环境中管理多线程和并发。 - **权限管理**:查看权限是如何在Android系统中被控制和实施的。 - **硬件适配**:了解Android如何通过HAL与不同硬件厂商的设备进行交互。 - **...

    Android开发精典案例60个

    6. **下拉刷新与上拉加载(Pull-to-Refresh & Infinite Scroll)**:使用SwipeRefreshLayout实现下拉刷新,结合LinearLayoutManager和EndlessRecyclerViewScrollListener实现列表的无限滚动。 7. **异步任务...

    Android应用源码之指南针定位源码.zip

    在Android平台上,开发一款指南针应用涉及到多个关键知识点,这些知识点包括但不限于传感器API的使用、图形界面设计、坐标转换以及实时数据更新等。本压缩包中的"Android应用源码之指南针定位源码"提供了实现这些...

    android一个天气预报程序代码

    在Android平台上,开发一个天气预报程序是一个常见的任务,它涉及到多个技术点,包括网络请求、数据解析、UI设计以及本地存储等。以下是对这个“android一个天气预报程序代码”所涉及知识点的详细解释: 1. **网络...

    Anroid天气预报源码Anroid天气预报源码

    如果应用需要定位服务以提供本地天气,还需要`ACCESS_FINE_LOCATION`或`ACCESS_COARSE_LOCATION`权限。源码中的`AndroidManifest.xml`文件会声明这些权限。 5. **定位服务**: - 使用Google Play Services的...

    天气预报app

    4. **定位服务**:利用Android系统的Location API,可以获取用户的地理位置信息,从而自动显示所在城市的天气。同时,也可以提供手动输入城市名或搜索城市的功能。 5. **天气API集成**:诸如OpenWeatherMap、...

    【计算机专业-Andorid项目源码100套之】天气预报

    Android提供了Location API来获取设备的位置信息,可以与天气数据相结合,显示用户当前所在地的天气。 最后,考虑到性能和用户体验,开发者可能还会涉及动画和过渡效果的实现,利用Android的Animation API或...

Global site tag (gtag.js) - Google Analytics