java - 如何在 Android 中创建接受参数的 Runnable?

标签 java android multithreading

在 iOS 中,我可以将一个函数处理程序传递给另一个函数,这个函数处理程序可以接受一个参数,并在另一个方法中执行。在 Android 中怎么可能?

public class func getImage(completion: (image: UIImage?) -> ()) {
    completion(image: image)
}

Utility.getImage(completion: {image in

    imageView.image = image

})

我知道 Runnable 类似于 blocksclosures,但它不接受参数。找到here如何将参数传递给 Runnable 的示例,但是这里的逻辑应该在单独的类中实现,而不是在调用“其他方法”的地方实现,因此代码可读性差 和 iOS 一样。有什么想法吗?

最佳答案

您不需要类来创建带有参数的可运行对象。在这里,我将分享我如何使用带有参数的 runnable。

private Runnable createRunnable(final String params) {
    return new Runnable() {
        @Override
        public void run() {
            // your code to run in background
            // Use your param here
        }
    };
}

使用这样的方法创建带有参数的可运行对象。您的参数将在您想要运行时使用。但这将是最终变量。所以你不能改变runnable里面的变量。如果你想修改变量,你只需要将参数复制到另一个变量并修改。

关于java - 如何在 Android 中创建接受参数的 Runnable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39751183/

相关文章:

java - 如何获取当前星期几(如星期一等)并在 android 中进行比较

java - Intellij 错误 : Internal caches are corrupted or have outdated format

java - 是否可以有一个 Eclipse 项目,其中一个包作为 Android 应用程序执行,第二个包作为 Java SE 应用程序执行?

java - Android:显示进度条对话框时出现问题?

Android - 如何编译一个里面有其他 Activity 的类

android - 如何在共享首选项中保存纬度和经度(位置)

java - Thread.sleep(1000) 在 Swing 中不起作用

java - 如何修复 get/check/put 的非原子使用?

java - 为什么java中有两种不同的for循环?

multithreading - 在 F# 中设置标志的线程问题