I have an Activity (A) and a Service (S) which gets started by A like this:
Intent i = new Intent();
i.putExtra("updateInterval", 10);
i.setClassName("com.blah", "com.blah.S");
startService(i);
A have a function like this one in A:
public void someInfoArrived(Info i){...}
Now I want to call A.someInfoArrived(i) from within S. Intent.putExtra has no version where I could pass an Object reference etc ... Please help!
PS: The other way around (A polling S for new info) is NOT what I need. I found enough info about how to do that.
One option is to switch from
startService()
tobindService()
and use the local binding pattern. Then, you need to have A call a method on S at some point to register a listener or callback method. Then, S will have something it can call on A when some info arrives. You can see a sample project for that here.Alternatively, you could leave
startService()
in place and use a broadcastIntent
to let S tell A about some info arriving. You can see a sample project demonstrating such a broadcastIntent
here.