Android 从Java端中断RenderScript中的forEach_根?

Android 从Java端中断RenderScript中的forEach_根?,android,renderscript,Android,Renderscript,我正在编写一个android应用程序,并使用renderscript进行一些复杂的计算(我正在模拟磁摆),这些计算是在位图的每个像素上执行的(使用script.forEach_root(…)。根据输入参数,此计算可能持续十分之一秒到大约10秒甚至更多 我想让应用程序保持快速响应,并允许用户无需等待即可更改参数。因此,我想在程序的Java端中断基于用户输入的运行计算。因此,我可以中断forEach_根调用吗 我已经尝试了一些解决方案,但它们要么不起作用,要么不能完全满足我的要求: 在Render

我正在编写一个android应用程序,并使用renderscript进行一些复杂的计算(我正在模拟磁摆),这些计算是在位图的每个像素上执行的(使用script.forEach_root(…)。根据输入参数,此计算可能持续十分之一秒到大约10秒甚至更多

我想让应用程序保持快速响应,并允许用户无需等待即可更改参数。因此,我想在程序的Java端中断基于用户输入的运行计算。因此,我可以中断forEach_根调用吗

我已经尝试了一些解决方案,但它们要么不起作用,要么不能完全满足我的要求:

  • 在RenderScript中添加一个包含取消标志的变量,并检查其在root:中的状态,因为我无法在forEach_root运行时使用set更改变量(它们是同步的,我想这是有充分理由的)
  • 将图像拆分为多个分幅:这是一种可能的解决方案,也是我目前最喜欢的解决方案,但这只是一种解决方法,因为计算单个分幅可能也需要几秒钟

由于我是renderscript新手,我想知道是否还有其他一些我不知道的解决方案。

不幸的是,没有简单的方法可以取消renderscript正在运行的内核。我认为您的平铺方法可能是目前最好的解决方案,您应该能够在开始内核执行时使用它来实现