我的问题很简单:我有一个BroadcastReceiver
来实现LocationListener
。 LocationListener
需要通常未实现的方法,而且这些方法不在onReceive
的{{1}}之内,因此我没有使用上下文。问题在于BroadcastReceiver
方法(其中一个onLocationChanged
未实现的方法)我必须调用一个必须使用上下文的方法,而我不知道如何获取它。
LocationListener
我该如何做到这一点?
答案 0 :(得分:2)
您可以声明类级别上下文,如下所示,然后使用它。
public class MyBroadcastReceiver extends BroadcastReceiver实现了LocationListener {
private Context context;
@Override
public void onReceive(Context context, Intent intent) {
this.conext = context;
}
public void onLocationChanged(Location location) {
method(context); // Now you can use context
}
public void onStatusChanged(String s, int i, Bundle b) {
}
public void onProviderDisabled(String s) {
}
public void onProviderEnabled(String s) {
}
答案 1 :(得分:2)
我有一个实现LocationListener的BroadcastReceiver。
如果通过清单注册了此BroadcastReceiver
,将其设为LocationListener
毫无意义,因为您的进程可以在onReceive()
返回后的毫秒内终止。
我必须调用一个方法必须使用上下文,我不知道如何获取它
如果您使用registerReceiver()
设置此BroadcastReceiver
,并且出于某种原因,您也可以将其设为LocationListener
,那么您的Context
是registerReceiver()
无论是什么叫Activity
(Service
或{{1}})。