Android - 按请求顺序在后台运行任务
Posted
技术标签:
【中文标题】Android - 按请求顺序在后台运行任务【英文标题】:Android - Running tasks in the background in order of request 【发布时间】: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 HandlerThreads
或this
【参考方案1】:
您可以使用 AsyncTask 或线程的阻塞队列按顺序执行操作。您还可以使用这样的库:
https://github.com/path/android-priority-jobqueue
【讨论】:
以上是关于Android - 按请求顺序在后台运行任务的主要内容,如果未能解决你的问题,请参考以下文章