在服务中使用位置侦听器请求更新是在活动中停止另一个位置侦听器

时间:2015-04-15 04:36:56

标签: android android-service locationlistener

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

2 个答案:

答案 0 :(得分:0)

尝试将此添加到您的活动中:

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

答案 1 :(得分:0)

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

案例1:[我的案例] 我使用了LocationListener的两个独立的Inner Class实现,一个在Activity中,一个在Service中,每个实现都通过requestLocationUpdates(..,..,..,locationListener)函数同时请求位置更新。

这些locationListener对象不是SAME类的实例,所以首先在requestLocationUpdates()函数中使用它,只有它正在工作。


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


案例3: 第三方面:D,如果使用一个相同的LocationListener实现实例多次调用requestLocationUpdates(),则最近的调用将接管前面的调用,并使用函数中传递的minTime和minDistance。


注意:以上所有情况都在 requestLocationUpdates(String provider,int minTime,int minDist,LocationListener listener) 版本的函数上进行测试。