É uma forma segura de lidar com threads no Android sem ter as inconveniências de usar o Runnable padrão do Java.
Como implementar?
Aqui usaremos o padrão Singleton, para termos apenas uma referência ao Executor (podemos ter mais de um se desejar, mas é bom manter apenas uma referência para cada executor). Criamos um novo executor implementando uma outra classe que herda Executor, mas também podemos usar a classe Executors para outras formas de instanciar, como usando o método newSingleThreadExecutor ou newFixedThreadPool.
01. public class AppExecutor{
02. private static final Object LOCK = new Object();
03. private static AppExecutors instance;
04. private final Executor executor;
05. private AppExecutor(Executor executor){
06. this.executor = executor;
07. }
08. public static AppExecutors getInstance(){
09. if(instance==null){
10. synchronized(LOCK){
11. instance = new AppExecutor(ThreadExecutor()));
12. }
13. }
14. return instance;
15. }
16. public Executor getExecutor(){
17. return executor;
18. }
19. private static class ThreadExecutor implements Executor{
20. private Handler threadHandler = new Handler(Looper.getMainLooper());
21. @Override
22. public void execute(@NonNull Runnable command){
23. threadHandler.post(command);
24. }
25. }
26. }
Nenhum comentário:
Postar um comentário