位置: 编程技术 - 正文

android中定时定位的实现(android定时器的使用)

编辑:rootadmin
想要实现这个功能,应该分为三部分工作。(1)定时功能的实现,调用系统当前时间,使用timer实现定时功能;(2)当前位置的获取,使用GPS功能获取当前位置,并且显示出经度和纬度,并且使用位置监听事件LocationListener监听位置变化,当位置改变时,获取新的经纬度,并显示;(3)将两部分功能进行整合为一个整体。代码如下:import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;import android.location.Criteria;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.annotation.SuppressLint;import android.app.Activity;import android.appwidget.AppWidgetManager;import android.content.Context;import android.text.method.DateTimeKeyListener;import android.view.Menu;import android.widget.TextView;import android.widget.Toast;public class TimerActivity extends Activity {private Handler handler = new Handler();Timer timer;Timer timerone;TimerTask task = new TimerTask() {// 任务public void run() {Message message = new Message();message.what = 1;handler.sendMessage(message);}};TimerTask taskone = new TimerTask() {// 任务public void run() {Message message = new Message();message.what = 0;handler.sendMessage(message);}};String g_latLongString;@SuppressLint("HandlerLeak")@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);timer = new Timer(true);timer.schedule(task, 0, ); // 延时ms后执行,ms执行一次timerone = new Timer(true);timerone.schedule(taskone, 0, ); // 延时ms后执行,ms执行一次// timer.cancel(); //退出计时器// 通过系统服务,取得LocationManager对象//声明LocationManager对象 LocationManager loctionManager; String contextService=Context.LOCATION_SERVICE; //通过系统服务,取得LocationManager对象 loctionManager=(LocationManager) getSystemService(contextService); //通过GPS位置提供器获得位置// String provider=LocationManager.GPS_PROVIDER;// Location location = loctionManager.getLastKnownLocation(provider); //使用标准集合,让系统自动选择可用的最佳位置提供器,提供位置 Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE);//高精度 criteria.setAltitudeRequired(false);//不要求海拔 criteria.setBearingRequired(false);//不要求方位 criteria.setCostAllowed(true);//允许有花费 criteria.setPowerRequirement(Criteria.POWER_LOW);//低功耗 //从可用的位置提供器中,匹配以上标准的最佳提供器 String provider = loctionManager.getBestProvider(criteria, true); //获得最后一次变化的位置 Location location = loctionManager.getLastKnownLocation(provider); //显示在TextView中 updateWithNewLocation(location); //监听位置变化,2秒一次,距离米以上 loctionManager.requestLocationUpdates(provider, , 2, locationListener);handler = new Handler() {// 委托@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case 1:try {TextView recordLoctionText = (TextView)findViewById(R.id.recordLoctionText);recordLoctionText.append(g_latLongString &#; "n");} catch (Exception e) {Toast.makeText(getApplicationContext(), e.toString(),Toast.LENGTH_SHORT).show();}break;case 0:SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");Date curDate = new Date(System.currentTimeMillis());// 获取当前时间String str = formatter.format(curDate);TextView mytimeText = (TextView)findViewById(R.id.mytimeText);mytimeText.setText(str );}}};}//位置监听器 private final LocationListener locationListener = new LocationListener() {@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {}@Overridepublic void onProviderEnabled(String provider) {}@Overridepublic void onProviderDisabled(String provider) {updateWithNewLocation(null);}//当位置变化时触发@Overridepublic void onLocationChanged(Location location) {//使用新的location更新TextView显示updateWithNewLocation(location);}}; // 将位置信息显示在TextView中private void updateWithNewLocation(Location location) {String latLongString;TextView myLoctionText;myLoctionText = (TextView) findViewById(R.id.myLoctionText);if (location != null) {double lat = location.getLatitude();double lng = location.getLongitude();latLongString = "Lat(纬度): " &#; lat &#; "nLong(经度): " &#; lng;g_latLongString = latLongString;} else {latLongString = "没找到位置";}// SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");// Date curDate = new Date(System.currentTimeMillis());// 获取当前时间// String str = formatter.format(curDate);myLoctionText.setText( "您当前的位置是:n" &#; latLongString);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.timer, menu);return true;}}XML文件:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" ><TextView android:id="@&#;id/mytimeText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" android:textSize="dip" /> <TextView android:id="@&#;id/myLoctionText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" android:textSize="dip" /> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbars="none" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="dp" android:orientation="vertical" > <TextView android:id="@&#;id/recordLoctionText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:fadeScrollbars="false" android:scrollbars="vertical" android:text="" android:textColor="#" android:textSize="dip" /> </LinearLayout> </ScrollView></LinearLayout>

推荐整理分享android中定时定位的实现(android定时器的使用),希望有所帮助,仅作参考,欢迎阅读内容。

android中定时定位的实现(android定时器的使用)

文章相关热门搜索词:android 定时器,android 定时执行,android定时任务是什么,android 定时器,安卓app自动定时执行操作,安卓app自动定时执行操作,android定时执行某个任务,android定时任务是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

Android之Volley 简介:Volley是GoogleI/O上Google官方发布的一款Android平台上的网络通信库。以前的网络请求,要考虑开启线程、内存泄漏、性能等等复杂的问题。但是Vol

android中注册页面实现 自己动手做的第一个demo,简单的注册页面的实现,并且注册成功后返回注册信息,适用于android新手基本控件的使用。注册页面的实现:importandroid.os.Bund

Android酷炫实用的开源框架(UI框架)(转载,只为保存) 转自Android开发中文站»Android酷炫实用的开源框架(UI框架),点击打开链接。转载该博客,只为保存,留下自己慢慢体验。1.Side-Menu.Android分类侧滑菜单

标签: android定时器的使用

本文链接地址:https://www.jiuchutong.com/biancheng/374481.html 转载请保留说明!

上一篇:普通本科生面试总结以及在校编程经历(本科生面试的自我介绍)

下一篇:Android之Volley

  • 政府补助利得要交企业所得税吗怎么算
  • 私车公用如何处理
  • 税务网上清卡流程
  • 公转私操作步骤
  • 用餐补贴算在工资里面吗
  • 附加税减免税会计处理怎么做?
  • 公司成立前购买的设备算个人还是公司
  • 手撕发票怎么区分地区开具
  • 维修房产用的建材会计分录
  • 开具增值税专用发票的要求
  • 股东贷款可以转给其他人吗
  • 购买方和销售方一样可以报销吗
  • 这些常用的发票知识,你都知道了吗?
  • 用友t3怎么删除损益结转凭证
  • 出口退税换汇率多少是正常
  • 增值税普通发票可以抵扣吗
  • 土地在会计中怎么处理
  • 个体工商户需要做账吗
  • 与权益法核算相关的累计净损益
  • 出租包装物和出借包装物的摊销额
  • 个人股权转给公司要交个税吗
  • 华为手机定位另外一个华为手机怎么办
  • 成本加成法的缺点
  • 开了红字发票销售方怎么账务处理?
  • 任务栏音量图标点击无反应
  • XP系统,右下角本地连接图标消失的解决办法
  • 虚拟机中怎么安装ubuntu
  • Win10 Build 19044.1379/19043.1379更新补丁KB5007253预览版推送
  • 对外支付需要缴纳增值税吗
  • 废旧物资销售收入
  • nicconfigsvc.exe - nicconfigsvc是什么进程 有什么用
  • 融资租入固定资产是什么意思
  • 相关企业之间的竞争
  • 普通增值税发票会计科目怎么写?
  • 如何开启framework 3.5
  • 固定资产折旧提完后只剩净残值
  • ucenter中词语过滤原理分析
  • vue子组件获取dom元素的方法
  • bootstrap 栅格
  • 自动化工具 业务有哪些
  • vue-element
  • php在图片上添加文字
  • 帝国cms上传视频半天没反应
  • 收到股东投资款现金流量表入哪一项
  • 商业折扣的会计分录
  • 不抵扣的发票需要认证吗
  • python复制文件的代码
  • SQL 2005 ERROR:3145 解决办法(备份集中的数据库备份与现有的数据库不同)
  • 申请制作广告牌的申请
  • 口罩属于哪个科目 会计
  • 行政事业单位核销固定资产的账务处理
  • 公司办公室租金
  • 无形资产入账价值包括费用化支出吗
  • 预付账款的账务处理过程
  • 增值税的专用发票的相关规定
  • 资金结存属于资产类吗
  • 外经证核销反馈表写错了怎么办
  • 胶水属于什么开发工具
  • 员工差旅费会计分录
  • 成本费用会计科目
  • win10有没有语音输入
  • windowsserver2008密码规则
  • qqprotect.exe是什么进程?qqprotect.exe怎么禁止自动启动?
  • windows传输到mac
  • linux系统的安装配置
  • linux有哪几种安装方式
  • js array数组
  • u3d unity3d
  • js == ===区别
  • win10的安装方式有哪些
  • unity-gain
  • 使用jQuery调用XML实现无刷新即时聊天
  • android 动画特效
  • jquery formbuilder
  • 国家税务总局税务稽查科
  • 运输专票怎么开发票
  • 重庆市国家税务局电子税务局官网
  • 地税局属于省直单位吗
  • 东莞办理房产证在哪里预约
  • 浙江省违章建筑年限认定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设