问题标签 [square-tape]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Android磁带导入错误
我已经开始按方格探索磁带了。导入示例应用程序后,它会显示import error javax.inject.Inject
我如何解决这个问题?
java - 可以从 android 的主线程使用 Square Tape 文件支持的队列吗?
Square 有一个开源项目名称 Tape http://square.github.io/tape/,它实现了一个持久的文件支持队列。所有示例似乎都表明可以从主线程将对象添加到队列中。然而,对于 android 的所有其他最佳实践似乎都表明在主线程上执行 I/O 只是在玩 ANR。
Square Tape 文件支持的队列是否设计为在主线程中使用?如果是这样,是什么让它可靠安全地从主线程使用,而不用担心 ANR 与任何其他形式的 I/O 相比?
java - 读取 QueueFile 磁带时出现 EOFException
我正在使用 Square 的Tape库将数据上传到服务器排队。
队列以 JSON 格式存储在 File 中。当应用程序启动时,我初始化队列并开始上传(即,如果在 Wifi 上)但是在用户的某些设备上,我看到EOFException
消息'null'
(登录 crashlytics)。
FileObjectQueue
从现有文件创建对象时会发生错误- 从调试信息收集的实际文件约为 1MB。
任何想法是什么导致了这种情况或如何防止它?- 也许我需要清理一下我的 java.io。
编辑:使用磁带 v1.2.1
更新- 自升级到 1.2.2 后也看到此错误
android - 使用 Square 的磁带库如何处理调用抽象类
我正在使用Square 的 Tape 库,并且我遇到了一个基本上需要一个抽象 TapeTask 类的要求。但问题是 GsonConverter 的反序列化过程(它实现了库的 FileObjectQueue.Converter - 如示例项目中所示)不能很好地与接口/抽象类一起使用。
我认为这是一个 Gson 反序列化问题,所以我使用自定义 TypeAdapter 注册了我的 Gson 实例,但这仍然无法解决问题。我认为它与 FileObjectQueue.Converter 有关。
我目前正在尝试使用来自我的子任务的讨厌的包装回调接口来解决这个问题。
我的要求是拥有一个 TapeQueue 并能够发送多种类型的任务。所以我有一个 TapeTask 抽象类,并有具体的实现,如 ImageDownloadTask、ImageUploadTask、UrlPostWithRetrofitTask、GoogleAnalyticsTrackerTask 等。所有这些都进入一个队列。
有没有办法做到这一点。我想我的问题归结为: 我需要做什么才能使 FileObjectQueue.Converter 与抽象类很好地配合?
提示:P:该类的 javadoc 说“..您还需要在序列化字节数组中包含具体的类名”,但我不确定这意味着什么。如果有人可以解释如何将名称包含在序列化字节数组中,以达到我的目的,我将不胜感激!
java - Dagger 在磁带任务中注入改造服务
我有改造服务:
在匕首模块中:
//请注意,该模块也提供了restAdapter。
在我正在使用该服务的磁带任务中,我尝试了:
但有了这个 mService 总是空的。虽然 MyTask 已经添加到模块的 @Module(injects = {...}) 中。
所以我尝试在任务的构造函数中传递上下文并用类似的东西注入我的任务:
但仍然让 mService 始终为空。
同样,当在我的活动中注入 MyService 并将其设置为 MyTask 中的一个字段,然后将其传递给已创建的字段时。由于 MyTask 是一个 Tape 任务(square 的磁带库),它在序列化时失败(可以理解):
那么有没有办法在 Tape Task 中正确注入改造服务类?
我不确定我的解释是否正确.. 如果需要,我可以提供更多信息。
谢谢。
android - 在 Android 上使用 Google Volley 和 Square Tape
安卓菜鸟在这里。几个月前,我被要求修复一些其他菜鸟为手持设备编写的应用程序。它的问题是这些设备主要用于网络不可靠和薄弱的地区。结果,我们的大多数数据上传请求都失败了。
最初的作者决定推出自己的 REST 客户端,也没有实现任何持久性。我正在考虑用经过验证的网络和缓存库替换那些。具体来说,我想Google Volley
用于网络和Square Tape
持久上传数据。我的信心有点低,因为我的搜索没有抛出任何使用这种组合的实例。
是否Volley
使Tape
冗余?的缓存和重试机制是否Volley
提供与队列相同的功能Tape
?我可以看到一个优点,Tape
以防止由于应用程序崩溃而丢失数据,但Tape
如果我使用 Volley,我还需要吗?
java - 如何确保我的 Android 应用不会同时访问文件?
我正在构建一个健身应用程序,它会不断记录设备上的活动。我需要经常登录,但我也不想不必要地耗尽用户的电池,这就是为什么我正在考虑将网络呼叫批处理并在无线电激活后立即将它们全部传输,设备是连接到 WiFi 或正在充电。
我正在使用基于文件系统的方法来实现它。我首先将数据保存到一个File
- 最终我可能会使用Square 的 Tape来做到这一点 - 但这是我遇到第一个问题的地方。
我不断将新的日志数据写入 . File
,但我还需要定期将所有记录的数据发送到我的后端。发生这种情况时,我会删除File
. 现在的问题是如何防止这两个操作同时发生?当然,如果我尝试将日志数据写入File
,同时其他进程正在读取File
并尝试删除其内容,则会导致问题。
我正在考虑使用IntentService
本质上充当所有这些操作的队列。而且因为 - 至少我已经阅读了很多 -在单个工作人员中按顺序IntentServices
处理s ,因此其中两个操作不可能同时发生,对吧?Intent
Thread
目前我想安排一个PeriodicTask
负责GcmNetworkManager
将数据发送到服务器的。有没有更好的方法来做这一切?
android - 队列文件有时会损坏,导致在查看时出现 JSONSyntax 异常
我正在使用 Square Tape Queue ( https://github.com/square/tape/ ) 来存储数据。但是我有时会发现这个奇怪的文本,这会在从队列中读取时导致“JSONSyntaxException:预期的 BEGIN_OBJECT 但找到了字符串”。