! ! ! ! ! ! // Nesse caso, constantes serão otimizadas // e concatenadas em tempo de compilação !!! final String facebookAvatarURL = GRAPH_BASE_URL.concat(facebookID); // String.concat() melhor para uma variável String StringBuilder builder = new StringBuilder(200); // Garantir que StringBuilder aloca caracteres suficientes // evita a criação de novos arrays de caracteres
{ if (new Random().nextInt(300) == 0) { ! getDelegate().createBlock( new Block(Assets.block).generate(), 1, 1); } } } Um random por bloco Novo bloco a cada chamada da engine
void sendMessage(Handler handler, Object eventInfo) { final Message message = new Message(); message.what = MSG_DESIRED_EVENT; message.obj = eventInfo; handler.sendMessage(message); } Uma mensagem nova para cada evento de interesse
void sendMessage(Handler handler, Object eventInfo) { final Message message = Message.obtain(); message.what = MSG_DESIRED_EVENT; message.obj = eventInfo; handler.sendMessage(message); } Obtém uma mensagem de um pool, ou cria uma nova
null) { for (GraphUser user : users) { FacebookFriend friend = new FacebookFriend(user); friends.add(friend) } } Otimizada pelo compilador !!! FOR LOOP
= new Handler(Looper.getMainLooper()); ! private void workOnBigFile(final String filePath) { ! new Thread(new Runnable() { @Override public void run() { Process.setThreadPriority( Process.THREAD_PRIORITY_BACKGROUND); ! File f = new File(filePath); Data d = DataUtils.extractFrom(f); Message.obtain(mHandler, MSG_DONE, d).sendToTarget(); } }).start(); } Prioridade mais baixa para sua Thread