在服务中使用位置侦听器请求更新正在停止 activity 中的另一个位置侦听器

requesting updates using location listener in service is stopping another location listener in activity

当我使用位置侦听器在服务中请求更新时,我放入 activity 中的另一个侦听器不起作用。当我停止该服务(从应用程序中使用切换按钮)时,activity 再次开始侦听位置。我想要两个工作。为什么两者不同时工作?我错过了什么吗?

尝试将此添加到您的 activity 中:

@Override
    public void onDestroy() {
        super.onDestroy();
        getActivity().unregisterReceiver(receiver);
    }

我弄清楚了 requestLocationUpdates( ) 函数的行为方式。

案例 1:[我的案例] 我使用了 LocationListener 的两个单独的内部 Class 实现,一个在 Activity 中,一个在服务中,每个都通过 requestLocationUpdates(.., .., .., locationListener) 函数。

这些 locationListener 对象不是 SAME class 的实例,因此第一个在 requestLocationUpdates() 函数中使用的对象,只有它在工作。


案例 2: 另一方面,如果您使用 SAME LocationListener class 的实例 (s) 调用 requestLocationUpdates(),所有这些都会同时工作。


案例 3: 另一方面 :D,如果您使用 LocationListener 实现的同一个实例多次调用 requestLocationUpdates(),则最近的调用会使用函数中传递的任何 minTime 和 minDistance 接管之前的调用。


注意:以上所有情况均在 requestLocationUpdates(String provider, int minTime, int minDist, LocationListener listener) 版本上测试功能。