Estás a invocar o acesso à BD na thread principal, se o acesso demorar vais bloquear arranque da actividade e vais pendurar a thread principal, o que resulta no sistema Android terminar a tua actividade à força.
Também estás a aceder à BD no onCreate, que é invocado apenas quando a actividade é criada, se navegares para uma segunda actividade que insira/altere dados e depois voltares à primeira actividade, os dados desta não são actualizados com as novas alterações.
Estás a fazer um get na lista de resultados sem verificares se existe algum resultado, o que resulta em teres null nas tuas variáveis que depois também não estás a validar.
A forma "correcta" depende do objectivo final mas com o código que tens sugeria a utilização de AsyncTask para pesquisa na BD e a colocação de proteções no acesso às listas e conversões de dados.
↧