Android: passe o parâmetro para o Serviço da Atividade

Estou vinculando ao Serviço desta maneira:

Classe de atividade:

ListenLocationService mService;
@Override
public void onCreate(Bundle savedInstanceState) {
        ...
        Intent intent = new Intent(this, ListenLocationService.class);
        intent.putExtra("From", "Main");
        bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
        ...
}

private ServiceConnection mConnection = new ServiceConnection() {

        public void onServiceConnected(ComponentName className,
                IBinder service) {
            LocalBinder binder = (LocalBinder) service;
            mService = binder.getService();         
        }

        public void onServiceDisconnected(ComponentName arg0) {
        }
    };

Isto éonBind método do meuServiç:

@Override
public IBinder onBind(Intent intent) {
    Bundle extras = intent.getExtras(); 
    if(extras == null)
        Log.d("Service","null");
    else
    {
        Log.d("Service","not null");
        String from = (String) extras.get("From");
        if(from.equalsIgnoreCase("Main"))
            StartListenLocation();
    }
    return mBinder;
}

Então, tenho "nulo" emLogCat - o pacote é nulo, apesar de eu ter criadointent.putExtra antesbindService

Em geral, o Serviço funciona bem. No entanto, preciso ligar paraStartListenLocation(); somente da atividade principal do aplicativo (eu decido fazer isso enviando uma bandeira

Como posso enviar dados para o serviço? Ou talvez haja outra maneira de verificar qual atividade foi iniciadaonBind?

questionAnswers(6)

yourAnswerToTheQuestion