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
?