Я искал способ получить ServiceConnection, когда я запускаю свою Службу, используя startService (...).
Я не нашел способа, поэтому немного искал и обнаружил следующее: Нужно ли каждому действию привязываться к сервису и что происходит, когда он был создан с помощью startService ()
Там, Commonsware говорит, что не имеет значения, если я вызываю bindService после вызова startService.
Поэтому я подумал, что сначала я запускаю startService (...), а затем сразу послеbindService (...) (так что вызывается onServiceConnected).Но затем Service.onCreate выполняется дважды.Возможно, потому что startService еще не «закончен» ...?
Вопрос в том, как мне получить ссылку на мою Службу (IBinder), т.е.как заставить onServiceConnected срабатывать, если я запускаю мой Сервис с помощью startService?
--- EDIT ---
Я все еще хочу знать любые ответы и идеи, которые вы могли быиметь.Я сделал «хак», чтобы обойти это:
Я просто сделал статическую ссылку (в SRef.java
у меня есть public static IBinder myBinder = null)
, а в моем Service.onCreate
я просто делаю
SRef.myBinder = myBinder;
Мне это не кажется правильным, поэтому любые другие идеи о том, как он должен работать, будут оценены.