当我使用位置监听器在服务中请求更新时,我在活动中放入的另一个监听器不起作用。当我停止该服务时(使用切换按钮从应用程序内),活动开始再次侦听位置。我想要两个都工作。为什么两者不同时工作?我错过了什么吗?
答案 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) 版本的函数上进行测试。