我正在編寫一個應用程序,它使用android中的fileobserver。當我的文件被修改(創建等)時,它應該上傳。爲了實現一個隊列並通過使用線程等避免內存不足,我希望使用IntentService一次上傳一個文件,並在失敗時保持執行狀態,以便當用戶重新獲得連接時,上傳。但現在的問題是:從FileObserver啓動IntentService
所有意圖給定的構造函數...
Intent();
Intent(Intent);
Intent(String);
Intent(Context, Class<?>); //The one I always use
Intent(String, Uri);
Intent(String, Uri, Context, Class<?>);
...不會工作。由於我在FileObserver的擴展中工作,沒有可接受的上下文來提供Intent。無論如何,我可以只使用字符串一來啓動IntentService?我不需要它來返回任何東西,我只需要爲它提供幾個字符串以便工作(文件名等)或者有另一種方法可以啓動IntentService。這一個真的讓我難住。
感謝您的高級幫助!
編輯:好的。我已經嘗試了很多上下文,但都看不到工作。 intent服務不會被應用程序或基類上下文從被調用時通過構造函數傳遞的服務類發起。這裏是我的應用程序的基本佈局:
登錄活動進入菜單活動,菜單活動啓動服務,服務啓動服務處理程序(請參閱android文檔中的服務示例,瞭解它是什麼)並傳遞上下文通過構造函數。服務處理程序啓動FileSync並通過構造函數傳遞上下文。 FileSync保存到類變量的上下文中。然後FileSync會等待文件被修改,然後使用上下文來啓動IntentService以通過Intent上傳文件。我知道這真的很複雜,但目前我只能這樣做。
FileObserver將由服務啓動。在那種情況下我會做什麼? – 2012-08-16 22:53:47