gpt4 book ai didi

android - 订阅或绑定(bind)到现有的 Intent 服务

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:16:36 26 4
gpt4 key购买 nike

我有一个应用程序有一个初始 Activity ,它在 ListView 中列出了一些文件。单击列表中的项目时,您会转到该特定文件的详细 Activity 。

在详细 View 中,我有一个名为下载的按钮,当您单击下载时,它会启动一个 IntentService,它会像这样设置要下载的文件:

downloadButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(AppDetailsActivity.this, AppDownloadService.class);
intent.putExtra(Consts.APP_DOWNLOAD_RECEIVER_KEY, new DownloadReceiver(new Handler()));
startService(intent);
}
});

DownloadReceiver 类用于更新下载文件详细 Activity 中的进度条。

现在我想做什么...

如果用户当前正在从详细 Activity 下载文件,然后返回到上一个 Activity ,我希望该 Activity 以某种方式订阅/绑定(bind)到相同的 IntentService 并检索结果,以便它可以显示进度条在正在下载的文件的列表项中。

  1. 这可能使用 IntentService 吗?
  2. IntentService 是否正确?
  3. 是否有任何示例(因为我还没有找到任何可以告诉我如何执行此操作的内容)?

最佳答案

对于下载,您当然可以使用 IntentService。它在不同的线程上运行。此外,请记住,为该 IntentService 多次调用 startService() 将创建一个队列,并且一次将处理一个 Intent 。

要显示 Activity 的进度,我不认为广播是正确的做法。尽管它们很可能是按顺序处理的,但框架或 Android 本身并不能保证交付时的顺序。这意味着您可以获得 50% 的广播,然后再获得 40% 的广播。为此,我建议您看一下这个例子:http://developer.android.com/reference/android/app/Service.html#LocalServiceSample

它可能看起来有点复杂,但您将拥有可以信赖的双向通信方式。

关于android - 订阅或绑定(bind)到现有的 Intent 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13343627/

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