问题标签 [locationlistener]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
357 浏览

android - AsyncTask 取消方法抛出处理程序错误

我有一个简单的活动,我用一个按钮启动一个 AsyncTask 并用另一个按钮停止它。

在 AsyncTask 中,我使用 LocationListner 从 GPS 传感器获取更新并计算获得的位置之间的距离。

当我按下开始按钮时,会创建新线程并且代码工作正常。从调试的角度来看,我可以看到 GPS 更新被定期捕获,并且我的变量也相应地更新。

但是,当我按下取消按钮时,问题就开始了。在文档(http://developer.android.com/reference/android/os/AsyncTask.html)中,我读到 cancel() 方法应该在 doInBackground 代码完成时调用 onCancelled() 。出于这个原因,我提出:

到处都是 doInBackground 方法,希望它能让我摆脱困境。不幸的是,我什至没有到达那部分。有一次,当我按下结束按钮时,我收到以下错误:

任何想法,这个错误的背后是什么。这是完整的代码。(构建目标是 Android 4.0.3)。该代码在 HTC One V 上进行了测试。

0 投票
2 回答
393 浏览

android - 何时注册位置更新?

我正在编写一个需要用户当前位置的 Android 应用程序。我使用以下代码从网络和 GPS 注册位置更新(locationManager 已定义):

我目前onCreate在.onPauseonResume

当应用程序启动时,它会添加两个侦听器两次,一次在 中onCreate,一次在 中onResume。我对此有两个问题:

  1. 每个监听器添加两次是否意味着它实际上被添加了两次,或者第二次调用没有效果?
  2. 我应该requestLocationUpdate从中删除 sonCreate并将它们放入,还是应该在再次添加之前先onResume删除所有侦听器?onResume
0 投票
1 回答
988 浏览

android - Gps,GeoCoding 导致应用程序在 android 中挂起

我正在使用带 Gps 的 locationListener。当我的 Gps 符号稳定(即停止闪烁)时,意味着它已经获得了新位置,那时它会挂起我的应用程序一段时间。我在 Service 中使用 locationListener。但是当我运行“地图“ 应用程序(google maps.apk 应用程序)它在 Gps 上运行顺畅。所以如果 Gps 关闭,我的应用程序运行非常顺利是什么问题。

我的代码在这里

0 投票
1 回答
689 浏览

android - 为什么位置侦听器功能不执行?

// 这是我的 MapActivity 类的代码

0 投票
1 回答
601 浏览

android - Android 错误从 LocationListener 类将位置数据写入 SQLite 数据库

我有一个应用程序,其中我有一个实现 locationlistener 的服务类。我希望能够将在 onLocationChanged() 中收到的位置传递回我的主要活动。到目前为止,我一直在尝试通过写入 SQLite 数据库来实现这一点,但是在尝试打开数据库以使其可写时出现错误。我相信这与没有写上下文有关,但我无法弄清楚。但是,当我在 onCreate() 中写入数据库时​​,它可以正常工作。我最初只是尝试这样做:

但这没有用,每次都会在 db.openToWrite() 行上给我一个 nullPointerException 。getApplicationContext() 在这里也不起作用。

我现在已将其修改为在线程中写入数据库:

我在 onCreate() 方法中将数据库初始化为:

但是现在,这第二次尝试不断给我一个更简洁的错误,但它仍然在我尝试打开数据库以使其可写的那一行出现故障。MyLocListener.java:92 行是指 db.openToWrite();

错误是:

0 投票
2 回答
294 浏览

android - 一旦 GPS 更新开始,Android GPSListener 就会收到通知

因此,众所周知的事实是 GPS 接收器需要一段时间(大约 10-12 秒)才能锁定卫星。使用 Android LocationListener 我想在位置更新开始时收到通知。例如:

我有一个带有以下代码的活动来实例化和调用 LocationListener

这是 LocationListener onLocationChanged 的​​实现。

在 locationUpdates 开始后,Common.currentLocation 字符串得到更新。但是,我想在我的主要活动中等待,直到该字段更新。

如果我在我的活动中放置一个 while 循环以等待更新 Common.currentLocation 字段,则线程将暂停并且不会调用 onLocationChanged 方法(不打印日志消息)。

一旦调用 onLocationChanged 并且纬度和经度值可用,从 onLocationChanged 方法获取更新到公共接口/活动的最佳方法是什么?任何帮助将不胜感激。

0 投票
2 回答
607 浏览

android - 即使在获得位置后,GPS 也一直在工作

我正在开发一个使用 gps 的应用程序,该应用程序在应用程序投入使用之前一直运行。我的 GPS 会在 5 分钟后唤醒并获取位置,然后其符号停止闪烁并在几乎所有设备(Sony xperia、Samsung tab、Htc WildFire、Motorola photon)中不可见,但在 Motorola Defy 和 Samsung Ace 中不可见,它们会消耗大量电池电量. GPS得到修复并始终保持稳定和可见。这些设备(Moto Defy 和三星 Ace)的 GPS 工作方式不同。看我的代码:

所有设备的 GPS 都会在 5 分钟后唤醒,但这两款设备(Moto Defy 和三星 Ace)的 GPSonLocationChanged(Location loc)每 300 米调用一次该方法。对于这两种设备来说,时间并不重要。当我快速旅行(在汽车中)时,这个距离在几分钟(1 或 2 分钟)内即可完成。所以我接到了一个关于onLocationChanged(Location loc)方法的电话。在这些设备中,GPS 始终是固定的、静态的和可见的。我不想locationManager.removesupdates每次 GPS 得到修复时都调用方法。我只在onDestroy()服务中调用此方法。那么请告诉为什么这两个设备的 GPS 与其他设备的行为不同,以及如何解决这个问题?

0 投票
1 回答
3458 浏览

android - onLocationChanged 回调是在哪个线程上进行的?主 UI 线程?

在我的应用程序中进行此回调时,我有很多工作要做(通过 ORM 库和一些基于距离的计算读取和写入 SQL db)。当然,我担心不会阻塞主 UI 线程,所以我一直在尝试(不成功)找出这是否是进行回调的线程。如果是,我打算对回调时触发的 AsyncTask 执行上述所有工作。同样的 AsyncTask 也将接收来自 2 个独立活动类的事件。(响应用户输入等。)

我发现的很多关于这个回调的讨论似乎都是基于人们试图改变实际接收回调的线程。这对我来说毫无意义。当然,平台会确定此回调的上下文,并且在接收到它时要做的明智的事情是将任何严肃的工作转移到另一个线程上,这对于 AsyncTask 似乎是合适的。

如果有人可以概述他们在这里使用的成功模式,那将非常有用。

0 投票
1 回答
880 浏览

android - 在 android 模拟器中查找最后一个已知位置

我正在尝试获取用户的最后一个已知位置,我正在使用 getLastKnownLocation 方法,因为我只想读取一次位置,我在模拟器中测试应用程序而不是真正的手机,但位置为空,我的代码

问题是我不知道何时将位置(从 DDMS)发送到模拟器(我尝试在打开应用程序之前和之后发送它,有时它可以工作)

我可以通过 imlemting LocationListener 获取位置并执行以下操作:

并覆盖工作正常的 onLocationChanged() 方法,但每次位置更改时它都会告诉我,我只需要读取一次位置。那么如何一次获取用户的当前位置呢?

0 投票
2 回答
300 浏览

android - SQLite 查询和 LocationListener 中的 NullPointerException

我想获取用户位置并将其与我的数据库中的位置进行比较,这是我想出的代码,但它仍然无法正常工作,它在这一行中给了我空指针异常:

这是整个班级:

这是 LogCat: