2013-03-12 118 views
0

我知道還有其他人提出了類似的問題,但我一直無法獲得有關如何在調用bindService時弄錯的答案。嘗試連接到2個服務時,Android bindService返回false

基本上我寫了一個應用程序連接到2服務。他們都在我的清單中:

<service android:name="com.test.LService"></service> 
<service android:name="com.test.CService"></service> 

CService按預期工作並始終有效。我昨天添加了LService,它根本不會啓動。請注意,最初我在MainActivity中使用了我的LocationListener實現,但我想收集獨立於活動焦點的GPS座標。爲了節省空間,我只需粘貼LService相關的代碼,因爲這是我遇到的服務。在我的MainActivity:

在LService類,所有綁定的東西,你會期望:

private final IBinder mBinder = new LBinder(); 

@Override 
public IBinder onBind(Intent intent) { 
    return mBinder; 
} 

public class LBinder extends Binder { 
    public LService getService() { 
     return LService.this; 
    } 
} 

這可能是一個問題的唯一的事情就是我的LService實現LocationListener的:

public class LocService extends Service implements LocationListener { 
... 

CService沒有實現任何東西,它只是擴展服務就像它應該。你認爲將LocationListener作爲一個工具去除,並在一個子類中重新實現它會有訣竅嗎?是否有一些Android反射看到了這個工具並確定它不適合作爲服務?爲什麼沒有例外?有任何想法嗎?謝謝!

更新:嗯,這不是因爲LocationListener的實現。我從LService中移除了這個工具,它仍然返回FALSE。嘆息...

UPDATE2:試圖調試的情況很粗糙,但CService下降到ClassLoader而LService根本沒有。是否有可能在某處存在不正確的某個類標識符?!?一切看起來都對我好。

UPDATE3:我放棄了,只是將LocationListener合併到我的CService服務中......我會盡可能地關閉這個問題。

回答

0

我不能關閉這個問題,所以我只會回答我最終做了什麼。

我放棄了,只是將LocationListener合併到我的CService服務中,並放棄了試圖弄清爲什麼我的第二個服務不起作用。儘管仍然對意見感興趣!

+0

我打算說先嚐試做startService(),然後綁定到它。即使在啓動後,也應該允許您綁定它。 – Tyler 2013-03-12 22:45:52

相關問題