我只是在学习使用服务,有点卡住了。
我有一个IntentService
用于下载文件队列的文件。我有一个Activity
能够打开和关闭应该下载哪些文件的功能。文件下载完成后,我在SharedPreferences
. 我有两个问题/问题:
启动 Service 的原始 Activity 很可能会消失,但很有可能该 Activity 的新实例已经启动。在这种情况下,我需要向该 Activity 发送一条消息以检查 SharedPreferences 并相应地更新它的 UI。因此我的问题是:如何向可能正在运行或未运行的活动发送消息?
活动可以在服务运行时打开和关闭应下载的文件。这造成了几种情况。如果服务未运行并且文件已打开,那么我想将此文件添加到它的队列中来启动它。如果服务正在运行并且文件被打开,那么我只想将文件添加到它的队列中。如果服务没有运行并且文件被关闭,我已经有了删除它的方法。但是,如果服务正在运行并且尚未下载文件,我想将其从队列中删除,或者如果它当前正在下载它,则停止下载它。我在我的 SharedPreferences 中保留了应该下载的文件,所以我想所有这些都可以通过向服务发送消息来检查 SharedPreferences 来涵盖。这就引出了我的第二个问题:如果服务正在运行,我如何获得,如果是,向它发送消息?