THE SITUATION:
I have a 'helper' class with static methods, to dynamically enable/disable a BroadcastReceiver.
I call these methods from other classes, when I need to register (or) unregister the Receiver.
THE ISSUE:
I can't figure out how to dynamically UNRegister the receiver from within the helper class..
(When I try to do context.unregisterReceiver(myReceiver); it doesn't recognize myReceiver).
THE QUESTION:
How do I properly reference myReceiver from the receiverUnregister method in the Code below?
public class GpsReceiverHelper {
// Called from a different Class when I need to Register the Receiver
public static void receiverRegister(Context context) {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.location.PROVIDERS_CHANGED");
final BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Receiver code goes here
}
};
context.registerReceiver(myReceiver, intentFilter);
}
// Called from a different Class when I need to UN-Register the Receiver
public static void receiverUnregister(Context context) {
// THIS DOESN'T WORK BECAUSE "myReceiver" can't be found..
context.unregisterReceiver(myReceiver);
}
}
Again, I plan to call these Methods from within a different class.
What is the proper way to go about doing this, and properly assign everything?
I managed to solve my issue by adding Field entries for
static BroadcastReceiver myReceiverand then assigning it likemyReceiver= ...inside of my static method containing the actual BroadcastReceiver code.. Furthermore, I realized I could avoid the BroadcastReceiver being killed upon callingfinish();simply by replacingcontext.registerReceiverwithcontext.getApplicationContext.registerReceiver. Problem(s) solved!