所以我有一个IntentService
,运行良好,当我运行一次。它需要一个图像来处理它,然后输出一系列的RGB值。Android - 多次运行一个IntentService
但我现在需要做的是多次运行批量出一系列图像。我的第一次尝试涉及在我的主类中调用停止服务,然后创建并运行IntentService的新实例。但是,当我打电话给StopService时,这崩溃了。
有没有正确的方法来做到这一点?
所以我有一个IntentService
,运行良好,当我运行一次。它需要一个图像来处理它,然后输出一系列的RGB值。Android - 多次运行一个IntentService
但我现在需要做的是多次运行批量出一系列图像。我的第一次尝试涉及在我的主类中调用停止服务,然后创建并运行IntentService的新实例。但是,当我打电话给StopService时,这崩溃了。
有没有正确的方法来做到这一点?
IntentService在处理完所有请求后停止服务,因此您不必致电stopSelf()
。
IntentService无法并行运行任务,并且所有连续的意图都将进入消息队列并将按顺序执行。
因此,只需将它们依次添加并确保清理您的字段,以确保所有意图都是独立处理的,因为不会重新创建IntentService对象/线程。
你必须了解的意图服务什么:
“的IntentService类提供了一个简单的结构,在单个后台线程运行的操作这使得它可以处理长时间运行的操作,而不会影响您的用户界面的响应能力“
不执行onStartCommand方法,因为万一你做了,你必须在完成时调用stopSelf()或stopService()。如果你不覆盖这个方法,那么Android OS会处理所有事情。
As @Radu Ionescu提到,intentService停止工作,当它完成所有的请求到达它的onHandleIntent方法。
IntentService通过它创建一个默认工作线程,并执行所有到达onHandleIntent方法的内容。
只需将所有内容添加到队列中,或者如果在添加两个不同的操作之前需要更长的时间,则可以使用Service来防止IntentService自行销毁。
显示你做了什么。 –