【问题标题】:Android - Running tasks in the background in order of requestAndroid - 按请求顺序在后台运行任务
【发布时间】:2016-10-08 03:50:31
【问题描述】:

这是我第一次来这里。我希望我的问题足够清楚。

我想在 Activity 开始时初始化一个 Decoder 对象并保持空闲状态,直到它请求执行 Decoder.decode(int x),我想在后台按照请求的顺序运行。

例如,Decoder.decode(int x) 需要超过 1 秒才能完成,但我调用 request 它每秒运行一次。我想调用Decoder.decode(int x) 等待上一个调用完成后再开始执行。

目前,我正在使用Service 并将其绑定到我的活动。初始化部分在onBind() 中完成。每次发出请求时,服务都会创建一个 AsyncTask 并在其 doInBackground 方法中运行 Decoder.decode(int x)。这是正确的方法还是我应该做其他事情?

感谢您的帮助。

【问题讨论】:

  • 您应该始终使用 AsyncTask 进行耗时的操作
  • @RajPatel 是的,我现在正在使用 AsyncTask,但我不知道如何让请求在开始运行之前等待它完成之前的请求。
  • HandlerThread类,阅读this,部分How do I use HandlerThreadsthis

标签: android android-asynctask android-service


【解决方案1】:

您可以使用 AsyncTask 或线程的阻塞队列按顺序执行操作。您还可以使用这样的库:

https://github.com/path/android-priority-jobqueue

【讨论】:

    猜你喜欢
    • 2017-03-05
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    相关资源
    最近更新 更多