您现在的位置: 爱51代码网 >> 范文 >> 文章正文
android子线程中处理GPS代码

android子线程中处理GPS代码

我想创建一个GPS服务类里面含有子线程监听GPS,由于小弟初学java和android,写着写着发现了个问题,对GPS的监听加上时间的话。。。是没到设定的时间启动了一个新线程吗,我暂时觉得不是,因为我在UI线程监听的时候,可以直接修改UI,但是如果这样的话,我用不知道,怎么在子线程中完成了。。。。郁闷。。。。以下是代码,如果我在UI线程里实例化一个GPSService类。。。。启动监听的话,还是一个线程吧??

Java code?public class GPSService  {           private final Handler mHandler;     private final Context mContext;     private final LocationManager mlocManager;     private LocationListener mlocationListener;     public String sb1;            public GPSService(Context context, Handler handler)     {         mContext = context;         mHandler = handler;         mlocManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);         mlocationListener = new LocationListener()         {             @Override            public void onLocationChanged(Location location)             {                 // 当GPS定位信息发生改变时,更新位置                 update(location);             }               @Override            public void onProviderDisabled(String provider)             { //                GPS关闭,清空信息                                               }               @Override            public void onProviderEnabled(String provider)             {                 // 当GPS LocationProvider可用时,更新位置                                               }               @Override            public void onStatusChanged(String provider, int status,                 Bundle extras)             {                               }         };     }           private void stop()     {         mlocManager.removeUpdates(mlocationListener);     }           public void start()     {         mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER                  , 3000, 8, mlocationListener );      }           public void update(Location newLocation)     {         if (newLocation != null)         {             DecimalFormat df = new DecimalFormat("###.00");             StringBuilder sb = new StringBuilder();             sb.append("经度:");             sb.append(df.format(newLocation.getLongitude()));                     sb1=sb1.toString();         }     }   }


如果我在代码里加上private class AcceptThread extends Thread{}把监听的代码加在这里面是不是就是两个线程了呢??如果监听过程作为子线程了,那么可以直接调用update修改sb1吗??是否要给子线程建立looper??

貌似在主测监听的时候要用到最后一个参数。。。。。
requestLocationUpdates (long minTime, float minDistance, Criteria criteria, LocationListener listener, Looper looper)
private class AcceptThread extends Thread     {         public void run()         {             Looper.prepare();             mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER                      , 3000, 8, mlocationListener,Looper.myLooper() );              Looper.loop();         }     }


再试试如何传递数据和修改UI 

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    undefined reference timer_crea
    linux文件/usr/lib破坏了,还原后
    linux上运行system函数时,print
    Failed to open eth0
    android手机无法与eclipse或电脑
    C/C++洗牌算法源代码
    servlet技术实现用户名唯一的验证
    E-business suite system servic
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    sharepoint 2010 获取用户信息Us
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    恢复使用繁体字可行性研究报告
    QT 获取鼠标点击对象信息问题
    如何让一个service监听按键事
    android程序运行崩溃,然后不
    监听去电状态的时候状态直接
    监听去电状态的时候状态直接
    qml和c++交互 用的modelist 
    android studio 无法启动
    Android 2.3.5系统内置图片G
    Android http post 上传图片
    安卓本地软件修改密码的实现
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |