现在无法在Manifest中设置PROVIDERS_CHANGED
intent-filter,我正在动态地进行。
但是,我需要在多个位置注册/取消注册动态编码的Receiver。
因此,我正在创建一个“Helper”类,其中包含一个带有Receiver代码的静态方法。
我的问题:我似乎无法弄清楚如何获取上下文以注册/取消注册接收器。
这是我目前的代码:
public class GpsReceiverHelper {
public static void gpsReceiverCode() {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.location.PROVIDERS_CHANGED");
final BroadcastReceiver gpsReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction() != null &&
intent.getAction().matches("android.location.PROVIDERS_CHANGED")) {
// RECEIVER CODE HERE
}
}
};
this.registerReceiver(gpsReceiver, intentFilter);
// THIS IS WHERE I CAN'T GET A CONTEXT (USING "this" OR OTHERWISE)
}
}
我的问题:
(A) - 我怎样才能在这里检索context
?
(B) - 使用public static
方法创建一个帮助类是正确的方法吗?
我怎样才能在这里检索上下文?
将其作为参数传递(public static void gpsReceiverCode(Context context)
)。
我需要在多个位置注册/取消注册动态编码的Receiver
当您的接收器在清单中时,它在一个地方“注册”。因此,当您动态地执行此操作时,可以在一个位置注册它(例如,自定义Application
子类)。
用正确的方法创建一个带有公共静态方法的助手类吗?
可能不是,只要您可能不需要在2个以上的地方使用此代码。