从 Activity 和服务写入文件

writing to a file from Activity and service

我有我的主要 activity 和我有一个服务(当应用程序关闭时,它甚至在后台运行)。我想从 activity 和服务写入同一个文件。实现这一目标的正确方法是什么(设计明智)?

一个解决方案是使用一个全局变量来告诉我服务当前是否正在写入,或者 Activity 是否正在写入(这样我就不会最终打开文件两次)。另一种方法是将服务绑定到 activity 并且 activity 只能通过调用服务上的方法写入文件

如有任何想法,我们将不胜感激

谢谢

在服务中写入文件是更好的方法,如果我理解你的问题,你的流程将如下所示 开始申请 Activity -> 提供有关将文件写入服务的信息 -> 启动服务 -> 写入文件 -> 将广播发送到您的应用程序

写一个广播接收器 -> 写入文件完成后收到您的广播。

最好不要直接从 Activity 写入文件,因为这可能会导致与 Service 的并发冲突。如果您从 Activity 请求您的 Service 向该文件写入一些内容会更好。

Activity<------>Service<------->File

Service 中创建一个方法,并在 Activity 中使用 required/desired 参数调用它,这样可以避免冲突,因为只有 Service 会写入到 File.