Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I bind this service in Android?

This is the code in my Activity. Initiate an Intent, then a Connection, right?

hello_service = new Intent(this, HelloService.class);
hello_service_conn = new HelloServiceConnection();
bindService( hello_service, hello_service_conn, Context.BIND_AUTO_CREATE);

But my question is...what goes inside the Connection?

   class HelloServiceConnection implements ServiceConnection {
        public void onServiceConnected(ComponentName className,IBinder boundService ) {

        }
        public void onServiceDisconnected(ComponentName className) {

        }
    };

Can someone tell me what code I put into onServiceConnected and onServiceDisconnected?

I just want a basic connection so that my Activity and Service can talk to each other.

Edit: I found a good tutorial, and I can actually close this question, unless someone wants to answer. http://www.androidcompetencycenter.com/2009/01/basics-of-android-part-iii-android-services/

like image 991
TIMEX Avatar asked Feb 17 '10 16:02

TIMEX


2 Answers

I would like to point out that if you follow the service examples provided by google then your service will leak memory, see this chaps excellent post on how to do it properly (and vote for the related Google bug)

http://www.ozdroid.com/#!BLOG/2010/12/19/How_to_make_a_local_Service_and_bind_to_it_in_Android

like image 116
Chris.D Avatar answered Sep 17 '22 21:09

Chris.D


Binding to a service from an Activity should be avoided as it causes probems when the Activity Configurations change (e.g. if the device is rotated the activity would get created again from scratch and the binding would have to be re-created).
Please refer to the comment from Commonsware on the following post on stackoverflow
Communicate with Activity from Service (LocalService) - Android Best Practices

like image 28
Nikhil_Katre Avatar answered Sep 16 '22 21:09

Nikhil_Katre