Android 即使在活动完成后,跟踪活动的最佳做法是什么?

Android 即使在活动完成后,跟踪活动的最佳做法是什么?,android,Android,这就是我面临的情况: 我有一个活动A,用户可以在SDK的帮助下下载内容。下载开始,有一个事件侦听器,它在下载内容时侦听SDK中的事件,包括更新“我的活动”中进度条的下载进度 现在,如果用户按“上一步”按钮浏览其他活动,则该活动A的状态将丢失。不过,下载会继续进行,并且工作正常,但由于活动A在按下后完成,当用户返回到该活动时,将创建一个新的事件侦听器实例,该实例不包含有关已下载内容的任何信息,以正确更新进度条 解决此问题的最佳做法是什么?因此,当用户按下后退按钮时,事件侦听器不会终止 这就是我的代

这就是我面临的情况: 我有一个活动A,用户可以在SDK的帮助下下载内容。下载开始,有一个事件侦听器,它在下载内容时侦听SDK中的事件,包括更新“我的活动”中进度条的下载进度

现在,如果用户按“上一步”按钮浏览其他活动,则该活动A的状态将丢失。不过,下载会继续进行,并且工作正常,但由于活动A在按下后完成,当用户返回到该活动时,将创建一个新的事件侦听器实例,该实例不包含有关已下载内容的任何信息,以正确更新进度条

解决此问题的最佳做法是什么?因此,当用户按下后退按钮时,事件侦听器不会终止

这就是我的代码在活动A中的样子:

private final DownloadEventListener downloadEventListener = new DownloadEventListener() {
    @Override
    public void onDownloadProgress(@NonNull Video video, @NonNull DownloadStatus status) {
        updateDownloadProgressBar(status.getProgress())

    } 
}
截图:

SDK定期提供下载进度,这使我能够相应地更新进度条。但是,正如我所提到的,如果用户按下后退按钮转到另一个活动并返回到此活动,那么事件侦听器就消失了


你知道怎么解决这个问题吗?我可以有一个公共事件侦听器吗?

这正是服务的用途。服务与活动相同,没有UI,可以在后台运行。根据:

服务是一个可以在后台执行长期运行操作的应用程序组件,它不提供用户界面。另一个应用程序组件可以启动服务,即使用户切换到另一个应用程序,它也会继续在后台运行。此外,组件可以绑定到服务以与其交互,甚至执行进程间通信。例如,服务可以在后台处理网络事务、播放音乐、执行文件I/O或与内容提供商交互


因此,虽然服务可以在后台运行,同时使用其他应用程序,但您也可以在运行其他活动时使用它。

一个选项是将下载内容放在服务上,然后从该活动启动服务,并不断广播进度,你可以从那里得到你的进展,当你恢复活动,以及惊人的!你也有相关的教程链接吗?看看官方文档了解服务是如何工作的,你可以轻松地将下载代码迁移到那里!!快乐代码:非常感谢!!我会深入研究。如果您能提供一些教程链接,我将不胜感激:只需谷歌Android服务教程。