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

Mis*_*sha 9 java multithreading android asynchronous

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

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

new Thread(new Runnable() {         
    public void run() {
        asyncMethod();              
    }
}).start();
Run Code Online (Sandbox Code Playgroud)

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

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

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

Jat*_*tin 6

HandlerLooper

大多数情况下,将Handler保留在LooperUI线程中,然后将其用于post Runnable。例如:

Handler h = new Handler();
//later to update UI
h.post(new Runnable(//whatever);
Run Code Online (Sandbox Code Playgroud)

PS:Handler而且Looper很棒。如此之多,以至于我为Java 重新制作了它们。