sábado, 5 de maio de 2018

Jsoup salvou meu projeto...

Mais um desafio....estou desenvolvendo um app e precisava pegar informações de um dos meus sites, quando me perguntei: "E agora....fudeu....kkk"....desculpem mas foi exatamente essa sensação que senti.

E pesquisando, descobri a biblioteca JSOUP.

Com ela ficou muito fácil capturar informações de fontes abertas, já que é possível navegar pelas TAGS HTML muito facilmente com ela. Não só para HTML mas achei uma ótima opção para consumir dados de Webservices XML, já que os dados tbem estão organizados por TAGS.

Como uso o repósitório do Maven no meu projeto (quem não conhece, procure conhecer porque facilita muito sua vida), precisei adicionar o seguinte código no meu POM.xml:

                <dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.3</version>
<scope>compile</scope>
</dependency>


E usar e abusar.

Para fazer uma request por exemplo é muito simples:


              document = Jsoup.connect("http://endereço da sua consulta").get();
              Elements imgs = document.select("img");
              for (String url : imgs){
                  System.out.println(url);
              }
   
teremos como resultado, todos os endereços de todas as imagens do endereço da pesquisa, e não é minha intenção me aprofundar muito no assunto, mas mostrar para quem nunca fez uso dessa biblioteca o quanto ela pode ser eficiente no dia a dia.

Sugiro que procurem a documentação a respeito e façam bom uso dessa biblioteca incrível e de facil implementação.

Para saber mais sobre essa biblioteca :

https://jsoup.org/

Espero ter dado uma luz pra vc que não conhecia essa poderosa biblioteca.

Abraço e até a próxima.




sábado, 21 de abril de 2018

O uso do BroadcastReceivers no Android

Hoje em um projeto me deparei com uma situação bem comum, como passar minhas ações e variáveis de um serviço para a MainActivity.

Sempre nos deparamos com essa situação e muita gente não sabe ou não conhece um recurso muito interessante, que são os BroadcastReceivers. uma forma simples de se comunicar entre Activity's, que pode resolver sua vida...kk

Primeiramente devemos criar uma constante de registro, em MainActivity criei a constante:

public static final String ACTION_STOP = "br.com.marcelzisse.ACTION_STOP";
//Substituindo pelo package da sua aplicação

para que possamos referencia-la em nosso service.
Toda vez que chamamos esse receiver, temos um Listener que irá monitorar e efetuar uma ação
Para receber as ações do BroadcastRegister, temos que registrar uma variavel, que (não esqueçam), devem ser desativadas sempre no nosso OnDestroy
usei o seguinte código para registrar o BroadcateReceiver:

private BroadcastReceiver stop = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (serviceBound) stopAudio();
//após o registro esse código será executado } };

juntamente com:

private void registerStop() { //Register playNewMedia receiver
IntentFilter filter = new IntentFilter(MediaPlayerService.ACTION_STOP); context.registerReceiver(stop, filter); }

adicione no Oncreate da Activity:

@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
...
registerStop(); }

e no onDestroy:

@Overrideprotected void onDestroy() { super.onDestroy(); unregisterReceiver(stop); }

Dessa forma podemos receber todas as acões direcionadas a esse Receiver inclusive trocar informações entre aplicações....muito interessante não é?

Mas e para chamar esse receiver e enviar minhas variáveis?
Eu utilizei esse código que me atendeu muito bem:

private void stopAction(){ Intent stop = new Intent(MediaPlayerService.ACTION_STOP); sendBroadcast(stop); }

E no caso de passar alguma informação adicionamos a seguinte linha antes do sendBroadcast:

stop.putExtra("variavel ou objecto",Object/Var);

Fácil não é, espero que essa informação seja útil pra vcs como foi pra mim....

Até a próxima.