2012-05-22 47 views
3

Service,如果我有一個像是否可以在一個子包中放置一個服務?

com.test.app 

包中的MyService.java只是工作,而不是像

com.test.app.services.MyService 

在清單我試着宣佈其子包與

<service android:name=".services.MyService" /> 

或完全限定

<service android:name="com.test.app.services.MyService" /> 

但無法工作。我正在使用子包來獲得更好的文件結構。所以我真的不能把我的服務文件放在一個子包中,或者我在這裏錯過了什麼?

(我與擴展下載檔案庫由Android團隊提供工作。這包括實現一個簡單的服務。)

+0

你應該能夠很好。您的服務如何「不能正常工作」?你如何開始你的服務? – kabuko

+0

我按照[這裏] [http://developer.android.com/guide/market/expansion-files.html#DownloaderService]的描述繼承了DownloaderService,所以我不是自己啓動服務... – Till

回答

0

是。

我已經做了很多次了。有可能會發生其他事情。我要檢查的第一件事是確保您的Intent構造正確。

+0

我是繼承類DownloaderService的描述[這裏](http://developer.android.com/guide/market/expansion-files.html#DownloaderService),所以我不是自己啓動服務... – Till

+0

@Till這是你的問題。僅僅因爲你已經對其他服務進行了分類,並不意味着當'DownloaderService'開始時它會被神奇地啓動。這會因各種原因而不好。你需要自己啓動你的'服務'。 – Argyle

+0

不,它由DownloaderLibrary(用於擴展文件)開始,但只有當它位於清單中聲明的​​主包時'package =「com.test.app」' – Till

1

是的,你可以把它放在你想要的任何命名空間。

超越子類DownloaderService您需要閱讀文檔的其餘部分,包括Starting the download。特別感興趣的是這一行:

// Start the download service (if required) 
int startResult = DownloaderClientMarshaller.startDownloadServiceIfRequired(this, 
       pendingIntent, SampleDownloaderService.class); 

請注意,您需要在這裏提供您的自定義Service類。

+1

這很奇怪。我正在提供我的自定義服務類,正如我所說的,它是所有功能(包括從Google Play服務器下載的測試),但只有當該服務位於主包中時纔有效...... – Till

+0

@Till我確切地同樣的問題。你有沒有設法解決這個問題? – theV0ID

+0

@ theV0ID如果我沒有記錯,我實際上最終將它保存在主包中。 – Till

相關問題