I know I can do an inner receiver class to call any method from my receiver
But my main activity is too damn big and does a lot of things. So I will need a class that extends broadcast receiver but who isn't an inner class. And can call one method from my main activity. I don't know if it's possible but my activity is a Home activity and a "singleInstance" activity so maybe with this detail someone has a way to access to my activity.
If it's impossible any way to split some java code in multiple files my main have more than 600 lines. (and for information I have already 19 java files for an alpha version of my apps so I have try to split it)
Create the BroadcastReceiver dynamically:
In your BroadcastReceiver class define class member:
YourMainActivity yourMain = null;
and method:
setMainActivityHandler(YourMainActivity main){
yourMain = main;
}
from your MainActivity do:
private YourBroadcastReceiverClassName yourBR = null;
yourBR = new YourBroadcastReceiverClassName();
yourBR.setMainActivityHandler(this);
IntentFilter callInterceptorIntentFilter = new IntentFilter("android.intent.action.ANY_ACTION");
registerReceiver(yourBR, callInterceptorIntentFilter);
finally, when yourBR.onReceive is fired you can call:
yourMain.methodOfMainActivity();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With