我正在编写一个应用程序,它使用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