繁体   English   中英

在Android中异步执行方法的最佳方法(紧凑和正确)

[英]Best way to execute method asynchronously in Android (compact and correct)

假设我有一个活动在屏幕上显示一些内容。 我需要异步执行一些方法(asyncMethod),当它完成后,我需要在屏幕上更新数据。 这是最正确和最简单的方法是什么?

目前我所知道的最简单的方法是使用线程:

new Thread(new Runnable() {         
    public void run() {
        asyncMethod();              
    }
}).start();

我熟悉AsyncTask,但它比使用线程更复杂,并且对于我需要异步运行的每个方法,需要创建新的AsyncTask,同时这会大大增加代码大小。

我想到了一些通用的AsincTask,它将方法作为参数而不是执行它,但据我所知,在Java中不可能将方法作为参数传递。

换句话说,我正在寻找异步执行方法的最紧凑(但正确)的方法。

HandlerLooper

大多数情况下,将Handler保持为UI线程的Looper ,然后使用它来发布Runnable 例如:

Handler h = new Handler();
//later to update UI
h.post(new Runnable(//whatever);

PS: HandlerLooper太棒了。 我为Java 重新制作了这么多。

如果你使用了Command设计模式,并制作了一个可以运行你的“命令”对象的通用AsyncTask,那么每个任务只需要一个类,并且只需要一个通用的AsyncTask来执行它们。 你甚至可以做一个通用的“命令”,通过反射或一些预定义的接口方法执行一个方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM