gpt4 book ai didi

java - 从 FileObserver 启动 IntentService

转载 作者:行者123 更新时间:2023-12-02 00:15:04 29 4
gpt4 key购买 nike

我正在编写一个使用 android 中的 fileobserver 的应用程序。当我以任何方式修改文件(创建等)时,它应该上传。为了实现一个队列并防止使用线程等耗尽内存,我想使用 IntentService 一次上传一个文件,并在失败时不执行,以便当用户重新获得连接时,上传。但问题是:

所有给定的 Intent 构造函数...

Intent();
Intent(Intent );
Intent(String );
Intent(Context, Class<?>); //The one I always use
Intent(String, Uri );
Intent(String, Uri, Context, Class<?> );

...不会工作。因为我正在使用 FileObserver 的扩展,所以没有可接受的上下文可供我提供 Intent。无论如何,我可以只使用 String 来启动 IntentService 吗?我不需要它返回任何内容,我只需要给它提供一些字符串即可使其工作(文件名等)或者是否有另一种方法可以启动 IntentService。这个真的把我难住了。

感谢您的帮助!

编辑:好的。我尝试过很多上下文,但没有一个起作用。 Intent 服务不会被应用程序或来自服务类的基上下文触发,这些服务类在调用它们时通过构造函数传递。这是我的应用程序的基本布局:

登录 Activity 转到菜单 Activity ,菜单 Activity 启动服务,服务启动服务处理程序(请参阅android文档中的服务示例以了解它是什么)并通过构造函数传递上下文。服务处理程序启动 FileSync 并通过构造函数传递上下文。 FileSync 保存类变量中的上下文。然后,FileSync 等待文件被修改,然后使用上下文启动 IntentService 来上传通过 Intent 请求的文件。我知道这真的很复杂,但这确实是我目前唯一能做到的方法。

最佳答案

Because I'm working in an extension of FileObserver, there is no acceptable context from which I can feed the Intent.

这个FileObserver不能存在于真空中。它需要由 Activity 或服务管理,这将为您提供上下文

关于java - 从 FileObserver 启动 IntentService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11996404/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com