Jestem wiązania z Serwisu przez ten sposób: classAndroid: parametr piłki serwis z działalności
aktywny:
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) {
}
};
To onBind
metoda mojego Służby:
@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;
}
Tak więc mam "zerowy" w LogCat
- pakiet jest pusty w s pite of I made intent.putExtra
przed bindService
Ogólnie rzecz biorąc Serwis działa dobrze. Muszę jednak zadzwonić pod numer StartListenLocation();
tylko z głównej aktywności aplikacji (postanawiam to zrobić wysyłając flagę).
Jak wysłać dane do serwisu? A może jest inny sposób sprawdzenia, która aktywność została uruchomiona: onBind
?
Dzięki za odpowiedź . Napotkałem kolejny problem później, być może wiesz, jak go rozwiązać: http://stackoverflow.com/questions/9956601/android-set-and-get-services-variable-in-different-activities –
@yorkw "Oto jak wiązać komunikację usług zaprojektowaną do pracy w API "- nie, że wątpię, czy jesteś poprawny, ale czy masz link do niektórych oficjalnych dokumentów Android, gdzie mogę przeczytać więcej na ten temat? – DuneCat
@DuneCat, zgodziłem się, że oświadczenie nie jest do końca dokładne, w rzeczywistości jest to jeden z zalecanych sposobów sugerowania przez Google implementacji związanej usługi, patrz [tutaj] (http://developer.android.com/guide/components/bound -services.html # Binder) po więcej szczegółów. – yorkw