Le démarrage d'un exécutable dans le thread d'arrière-plan

J'ai, à ma connaissance, mis en place un exécutable qui est créé sur un nouveau thread. Cependant, le fil ne semble pas être en cours d'exécution en arrière-plan, et les mesures prises à l'intérieur de l'exécutable sont de blocage de l'INTERFACE utilisateur avec de fortes actions.

Voir ci-dessous:

custListLoadThread = new Thread(loadRunnable);
custListLoadThread.run();

private Runnable loadRunnable = new Runnable()
{
    @Override
    public void run()
    {
        android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);

        Gen.popup("TEST"); //Creates a toast pop-up.
        //This is to know if this runnable is running on UI thread or not!

        try
        {               
            customers = Db.BasicArrays.getCustomers(CustomApp.Session.businessCode, empId);

            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    populate();
                    setCustListVisible(true);
                    loading = false;
                }
            });
        }
        catch (final Exception ex)
        {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Gen.popup(ex.getMessage());
                }
            });
        }
    }
};

Toutefois, ce code ne s'exécute pas en arrière-plan, il semble toujours fonctionner sur le thread de l'INTERFACE utilisateur. J'ai placé la ligne Gen.popup("TEST"); pour vous assurer de cela (de l'appel d'une toast pop up dans un non-thread de l'INTERFACE utilisateur devrait provoquer une erreur).

Toutes les idées pour lesquelles cet exécutable n'est pas en cours d'exécution en arrière-plan?

OriginalL'auteur Mike Baxter | 2014-07-18