To start my service from an Activiy I use startService(MyService.class)
. This works great, but in a special case the service should be started differently. I wa
Step #1: Delete your BroadcastReceiver
implementation.
Step #2: Examine the Intent
your service gets in onStartCommand()
and look at the action via getAction()
.
Intent serviceIntent = new Intent(this,ListenLocationService.class);
serviceIntent.putExtra("From", "Main");
startService(serviceIntent);
//and get the parameter in onStart method of your service class
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
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();
}
}