[Resolvido] Problema com Thread Android

8 respostas
J

Oi pessoal, esse é meu primeiro topico, seguinte estou com um problema na thread, tenho um aplicativo que fica de 1 em 1 minuto verificando se deu o horário de aula da pessoa, caso positivo eu envio uma notificação com o nome da materia e da sala. Está funcionando, porém se ativo agora meu aplicativo(12:00 meio dia) e deixo rodando minimizado quando for 19:25 que seria a condição para enviar a notificação, ele simplesmente não envia e não dá nenhum erro e continua rodando o aplicativo. Não consigo verificar o erro no debug, pois quando debugo ele funciona. Como nunca fiz uma thread acredito que o problema esteja nela. Quem puder me dar uma luz eu agradeço. Segue abaixo o código na classe que tem a thread. O codigo está um pouco extenso pq faço a mesma coisa para cada if, estava tudo em um metodo, mas tirei pensando que o problema era ele.

import java.util.ArrayList;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Handler;
import android.os.Vibrator;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MenuPrincipal extends Activity  implements OnGestureListener {

        private Button buttonMenuVerHorario;
        private Button buttonMenuCriarHorarios;
        private Button buttonMenuCadastrarMaterias;
        private Button buttonMapa;
        private GestureDetector detector = null;
        private int diaAtual;
        private final Handler handler =new Handler();
        //public static ControleVibrar iniciaVibrar;
        private static Thread thread;
        private static Thread thread2;
        private static VerificaHora conexao;
        private NotificationManager mNotificationManager;
        private int SIMPLE_NOTFICATION_ID;
        private Notification notifyDetails;
        
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.menuprincipal);
                fillComponents();
                setCallBacks();
                
                mNotificationManager = (NotificationManager) MenuPrincipal.this.getSystemService(MenuPrincipal.this.NOTIFICATION_SERVICE);
                notifyDetails = new Notification(R.drawable.japraaulalogo2, MenuPrincipal.this.getResources().getString(R.string.app_name), System.currentTimeMillis());
                
                mNotificationManager.cancel(SIMPLE_NOTFICATION_ID);
                
                //mNotificationManager.cancel(SIMPLE_NOTFICATION_ID);
        detector = new GestureDetector(this);
        
        }

        public void fillComponents() {
                buttonMenuVerHorario = (Button) findViewById(R.id.buttonMenuVer);
                buttonMenuCriarHorarios = (Button) findViewById(R.id.buttonMenuCriar);
                buttonMenuCadastrarMaterias = (Button) findViewById(R.id.buttonMenuCadastrar);
                buttonMapa = (Button) findViewById(R.id.buttonMapa);

        }

        public void setCallBacks() {
        //      handler = new Handler();
                
                //iniciaVibrar = new ControleVibrar(MenuPrincipal.this, handler);
                //thread2 = new Thread(iniciaVibrar);

                conexao = new VerificaHora(MenuPrincipal.this, handler/*,iniciaVibrar*/);
                conexao.setControle(true);
                thread = new Thread(conexao);
                thread.start();
                
                buttonMenuVerHorario.setOnClickListener(new OnClickListener() {
                        public void onClick(View arg0) {

                                acaoMenuVerhorario();

                        }
                });

                buttonMenuCriarHorarios.setOnClickListener(new OnClickListener() {
                        public void onClick(View arg0) {
                                acaoMenuCriarhorario();
                        }
                });

                buttonMenuCadastrarMaterias.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View arg0) {
                                acaoMenucadastrarMateria();
                        }
                });     
                
                buttonMapa.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View arg0) {
                                acaoMapa();
                        }
                });     

        }

        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
                // TODO Auto-generated method stub
                switch (keyCode) {

                case KeyEvent.KEYCODE_MENU:
                        return false;
                case KeyEvent.KEYCODE_SEARCH:
                        
                        return false;
                case KeyEvent.KEYCODE_BACK:
                AlertDialog.Builder aviso = new AlertDialog.Builder(this);                       
                 aviso.setTitle("Aviso"); // Titulo do AlertDialog;
                 aviso.setMessage("Se você fechar o aplicativo, a função de alerta de aula será desligada. Você realmente deseja sair?"); // Mensagem do AlertDialog;
                  aviso.setPositiveButton("SIM", new DialogInterface.OnClickListener() { // Botão de Positivo do Alert;
                      public void onClick(DialogInterface arg0, int arg1) {
                                        conexao.setControle(false);
                                        //iniciaVibrar.setVibraCel(false);
                                        MenuPrincipal.this.finish();
                       }
                        });
                    aviso.setNegativeButton("NÃO", new DialogInterface.OnClickListener() { // Botão de Negativo do Alert;
                         public void onClick(DialogInterface arg0, int arg1) {
                         
                            }
                        });
                        aviso.show();
                default:
                        break;
                }
                
                return super.onKeyDown(keyCode, event);
        }
        
        @Override
        protected void onStop() {
                // TODO Auto-generated method stub
                super.onStop();
                //iniciaVibrar.setVibraCel(false);
        }
        
@Override
protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        android.os.Process.killProcess(android.os.Process.myPid());
}

        private void acaoMenuVerhorario() {
                Intent it;
                switch (new Date().getDay()) {
                case 0:
                        it = new Intent(MenuPrincipal.this, HorariosCadastradosSeg.class);
                        startActivity(it);
                        //this.finish();
                        break;
                case 1:
                        it = new Intent(MenuPrincipal.this, HorariosCadastradosSeg.class);
                        startActivity(it);
                        //this.finish();
                        break;
                case 2:
                        it = new Intent(MenuPrincipal.this, HorariosCadastradosTer.class);
                        startActivity(it);
                        //this.finish();
                        break;
                case 3:
                        it = new Intent(MenuPrincipal.this, HorariosCadastradosQua.class);
                        startActivity(it);
                //      this.finish();
                        break;
                case 4:
                        it = new Intent(MenuPrincipal.this, HorariosCadastradosQui.class);
                        startActivity(it);
                //      this.finish();
                        break;
                case 5:
                        it = new Intent(MenuPrincipal.this, HorariosCadastradosSex.class);
                        startActivity(it);
                //      this.finish();
                        break;
                case 6:
                        it = new Intent(MenuPrincipal.this, HorariosCadastradosSab.class);
                        startActivity(it);
                //      this.finish();
                        break;

                default:
                        break;
                } 
                
                
        }

        private void acaoMenuCriarhorario() {
                Intent it = new Intent(MenuPrincipal.this, MenuHorarios.class);
                startActivity(it);
                //this.finish();
        }

        private void acaoMenucadastrarMateria() {
                Intent it = new Intent(MenuPrincipal.this, MenuMaterias.class);
                startActivity(it);
                //this.finish();

        }
        
        private void acaoMapa() {
                Intent it = new Intent(MenuPrincipal.this, SiteActivity.class);
                startActivity(it);
                //this.finish();

        }
        
        public String verificaDia(){
                String dia="";
                
                return dia;
        }
        
        public boolean onDown(MotionEvent arg0) {
                // TODO Auto-generated method stub
                return false;
        }

        @Override
        public boolean onTouchEvent(MotionEvent event) {
                if (this.detector.onTouchEvent(event)) {
                        return true;
                }
                return super.onTouchEvent(event);
        }

        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
                        float velocityY) {
                // TODO Auto-generated method stub
                if (Math.abs(e1.getY() - e2.getY()) > 250) {
                        return false;
                }
                // Movimento da direita para esquerda
                if (e1.getX() - e2.getX() > 100 && Math.abs(velocityX) > 200) {
                        this.buttonMenuCadastrarMaterias.performClick();

                } else if (e2.getX() - e1.getX() > 100 && Math.abs(velocityX) > 200) {
                        Toast.makeText(MenuPrincipal.this,
                                        "Não Existe Menu a Esquerda do Menu Principal.",
                                        Toast.LENGTH_LONG).show();
                                
                }

                return true;
        }

        public void onLongPress(MotionEvent e) {
                // TODO Auto-generated method stub

        }

        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
                        float distanceY) {
                // TODO Auto-generated method stub
                return false;
        }

        public void onShowPress(MotionEvent e) {
                // TODO Auto-generated method stub

        }

        public boolean onSingleTapUp(MotionEvent e) {
                // TODO Auto-generated method stub
                return false;
        }
}

class VerificaHora extends Activity implements Runnable {

        private Context context2;
        private final Handler handler2;
    //private  ControleVibrar iniciaVibrar;
        private static Thread thread2;
        public Dialog dialog2 ;
        String sala, materia;
        GregorianCalendar gc;
        String diaSemanaTexto;
        int diaSemana;
        int hora;
        int minuto;
        SQLiteDatabase leBd;
        Cursor c ;
        int resu ;
        SQLiteDatabase leBd2;
        List<String> list ;
        String[] lista ;
        Cursor cd;
        TextView text;
        DialogInterface.OnDismissListener ff;
        Button _ok;
        boolean controle;
        NotificationManager nm;
        Notification notificacao;
        Intent intentMensagem;
        PendingIntent p;
        
        public void setControle(boolean controle){
                this.controle = controle;
        }
        public VerificaHora(Context context, Handler handler /*,ControleVibrar iniciaVibrar*/) {
                // TODO Auto-generated constructor stub
                this.context2 = context;
                this.handler2 = handler;
                //this.iniciaVibrar = iniciaVibrar;
        }

        @Override
        public void run() {
                while (controle) {
                        try {
                                Thread.sleep(60000);
                        } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                        sala="";
                        materia="";
                        gc = new GregorianCalendar();
                        diaSemanaTexto = "";
                        diaSemana = gc.get(GregorianCalendar.DAY_OF_WEEK);

                        if (diaSemana == 1) {
                                diaSemanaTexto = "Domingo";
                        } else if (diaSemana == 2) {
                                diaSemanaTexto = "Segunda-Feira";
                        } else if (diaSemana == 3) {
                                diaSemanaTexto = "Terça-Feira";
                        } else if (diaSemana == 4) {
                                diaSemanaTexto = "Quarta-Feira";
                        } else if (diaSemana == 5) {
                                diaSemanaTexto = "Quinta-Feira";
                        } else if (diaSemana == 6) {
                                diaSemanaTexto = "Sexta-Feira";
                        } else if (diaSemana == 7) {
                                diaSemanaTexto = "Sábado";
                        }

                        hora = gc.getTime().getHours();
                        minuto = gc.getTime().getMinutes();
                        
                        if (diaSemanaTexto.equals("Segunda-Feira") && hora == 19 && minuto == 25) {
                                leBd = null;
                                leBd = context2.openOrCreateDatabase("bancoHorario.db",
                                                SQLiteDatabase.CREATE_IF_NECESSARY, null);

                                c = leBd.rawQuery("SELECT COUNT (id) resul FROM AULAS",
                                                null);
                                c.moveToFirst();
                                resu = c.getInt(0);
                                leBd.close();

                                leBd2 = null;
                                leBd2 = context2.openOrCreateDatabase("bancoHorario.db",
                                                SQLiteDatabase.CREATE_IF_NECESSARY, null);
                                list = null;
                                lista = null;
                                cd = leBd2.rawQuery(
                                                "SELECT * FROM AULAS WHERE cod_dia = 'Segunda-Feira' AND horario = '19:30'",
                                                null);

                                while (!cd.isAfterLast()) {
                                        if (cd.getPosition() == -1) {
                                                list = new ArrayList<String>();
                                                cd.moveToFirst();
                                        }
                                        sala= cd.getString(1) ;
                                        materia= cd.getString(4);
                                        cd.moveToNext();
                                }
                                cd.close();
                                leBd2.close();
                                if(sala.equals("") && materia.equals("")){
                                        
                                }
                                else{
                                        final String mensagemBarraStatus = "Já Pra Aula!";
                                        final String titulo = "Já Pra Aula!";
                                        
                                        //Classe que voce Gostaria de Chamar Assim que clickado na notificacao.
                                        //Voce Pode colocar outra acitivity para outra tela aqui se desejar.
                                        final Class<?> activity = TelaNotificacao.class;
                                         
                                        // Servico de Notificacao
                                        nm = (NotificationManager) context2.getSystemService(context2.NOTIFICATION_SERVICE); 
                                        
                                        //Escolhendo o Icone da Notificacao, Mensagem da Barra de Status e o Tempo que sera executado o horario.
                                        notificacao = new Notification(R.drawable.japraaula_logo, mensagemBarraStatus, System.currentTimeMillis());
                                         
                                        
                                        intentMensagem = new Intent(context2, activity);
                                        p = PendingIntent.getActivity(context2, 0, intentMensagem, 0);
                                         
                                        // Reunindo todas as informacoes e Montando a mensagem e a notificacao
                                        notificacao.setLatestEventInfo(context2, titulo, sala +" "+ materia, p);
                                         
                                        // espera 100ms e vibra por 250ms.
                                        notificacao.vibrate = new long[] { 100, 250, 100, 500 };
                                        notificacao.defaults |= Notification.DEFAULT_LIGHTS;
                                        notificacao.defaults |= Notification.DEFAULT_SOUND;
                                        notificacao.flags      |= Notification.FLAG_AUTO_CANCEL;
                                         
                                        
                                        nm.notify(R.string.app_name, notificacao);
                                        
                                        //setText(sala,materia);
                                }
                        }
                        
                       // ... else if com o resto dos dias da semana fazendo a mesma coisa...

                }

        }
}

8 Respostas

A

Olá
Coloca essa thread num service, e inicia via startService
Avalia a possibilidade de usar um alarme, verifica a próxima aula e seta um alarme para ser disparado x tempo antes do início da aula.
Evita que o seu app tenha que ficar rodando o tempo todo, consumindo ciclos de cpu e bateria.

lina

Oi,

try { Thread.sleep(60000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }

Imagine a sua Thread caindo no sleep acima justamente no horário 19:25.

Quando sair deste sleep, não será mais 19:25 e sim 19:26. Ou seja, não entrará no seu IF e sua logica está errada.

Tchauzin!

Marky.Vasconcelos

Voce pode usar o AlarmManager para agendar tarefas para serem executadas em algum horario especifico.

J
  • Sobre rodar de 1 em 1 minuto, já fiz o teste rodando em 40 segundos e também acontece a mesma coisa.
  • Não queria utilizar o alarme, pois não acho muito funcional para o que quero fazer, minha intenção não é interromper a pessoa, por isso optei pela notificação.
  • Vou tentar rodar a thread no service, para ver se resolve.

Deixei rodando no emulador o aplicativo e vou postar aqui o logCat, tem momentos que da um erro no banco de dados e no socket, será que isso está influenciando?
só que mesmo assim ele escreveu na tela o meu contador que deixei após enviar a notificação.

Obrigada pela ajuda!!!

10-10 14:32:18.212: DEBUG/dalvikvm(123): GC_EXPLICIT freed 1841 objects / 122040 bytes in 112ms
10-10 14:32:43.242: INFO/System.out(288): CONTADOR: 1hora: 14minuto: 32
10-10 14:33:23.372: INFO/System.out(288): CONTADOR: 2hora: 14minuto: 33
10-10 14:34:03.472: INFO/System.out(288): CONTADOR: 3hora: 14minuto: 34
10-10 14:34:28.335: DEBUG/SntpClient(58): request time failed: java.net.SocketException: Address family not supported by protocol
10-10 14:34:43.582: INFO/System.out(288): CONTADOR: 4hora: 14minuto: 34
10-10 14:35:23.693: INFO/System.out(288): CONTADOR: 5hora: 14minuto: 35
10-10 14:36:03.843: INFO/System.out(288): CONTADOR: 6hora: 14minuto: 36
10-10 14:36:43.962: INFO/System.out(288): CONTADOR: 7hora: 14minuto: 36
10-10 14:37:24.072: INFO/System.out(288): CONTADOR: 8hora: 14minuto: 37
10-10 14:38:04.192: INFO/System.out(288): CONTADOR: 9hora: 14minuto: 38
10-10 14:38:44.293: INFO/System.out(288): CONTADOR: 10hora: 14minuto: 38
10-10 14:39:24.363: INFO/System.out(288): CONTADOR: 11hora: 14minuto: 39
10-10 14:39:28.403: DEBUG/SntpClient(58): request time failed: java.net.SocketException: Address family not supported by protocol
10-10 14:40:04.533: INFO/System.out(288): CONTADOR: 12hora: 14minuto: 40
10-10 14:40:04.533: DEBUG/dalvikvm(58): GC_FOR_MALLOC freed 18550 objects / 864568 bytes in 84ms
10-10 14:40:44.665: INFO/System.out(288): CONTADOR: 13hora: 14minuto: 40
10-10 14:41:25.272: INFO/System.out(288): CONTADOR: 14hora: 14minuto: 41
10-10 14:41:26.882: WARN/InputManagerService(58): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44f7a988
10-10 14:42:05.382: INFO/System.out(288): CONTADOR: 15hora: 14minuto: 42
10-10 14:42:45.452: INFO/System.out(288): CONTADOR: 16hora: 14minuto: 42
10-10 14:43:25.533: INFO/System.out(288): CONTADOR: 17hora: 14minuto: 43
10-10 14:44:05.633: INFO/System.out(288): CONTADOR: 18hora: 14minuto: 44
10-10 14:44:28.471: DEBUG/SntpClient(58): request time failed: java.net.SocketException: Address family not supported by protocol
10-10 14:44:45.762: INFO/System.out(288): CONTADOR: 19hora: 14minuto: 44
10-10 14:45:25.882: INFO/System.out(288): CONTADOR: 20hora: 14minuto: 45
10-10 14:46:06.042: INFO/System.out(288): CONTADOR: 21hora: 14minuto: 46
10-10 14:46:46.132: INFO/System.out(288): CONTADOR: 22hora: 14minuto: 46
10-10 14:47:26.243: INFO/System.out(288): CONTADOR: 23hora: 14minuto: 47
10-10 14:48:06.353: INFO/System.out(288): CONTADOR: 24hora: 14minuto: 48
10-10 14:48:46.473: INFO/System.out(288): CONTADOR: 25hora: 14minuto: 48
10-10 14:49:26.592: INFO/System.out(288): CONTADOR: 26hora: 14minuto: 49
10-10 14:49:28.538: DEBUG/SntpClient(58): request time failed: java.net.SocketException: Address family not supported by protocol
10-10 14:50:06.692: DEBUG/dalvikvm(288): GC_FOR_MALLOC freed 4893 objects / 279560 bytes in 50ms
10-10 14:50:06.812: INFO/System.out(288): CONTADOR: 27hora: 14minuto: 50
10-10 14:50:06.812: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.812: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.812: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.812: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.812: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.812: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.812: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.812: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.822: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.822: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.822: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.822: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.822: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.822: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.822: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.822: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.832: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.832: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.832: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.832: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.832: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.832: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.832: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.832: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.832: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.832: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.832: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.832: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.832: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.832: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.832: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.832: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.842: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.842: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.842: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.842: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.842: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.842: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.842: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.842: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.842: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.842: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.842: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.842: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.842: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.842: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.842: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.842: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.852: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.852: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.852: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.852: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.852: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.852: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.852: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.852: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.852: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.852: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.852: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.852: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.852: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.852: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.852: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.852: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.862: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.862: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.862: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.862: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.862: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.862: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.862: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.862: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.862: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.862: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.862: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.862: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.862: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.862: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.862: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.862: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.872: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.872: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.872: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.872: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.872: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.872: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.872: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.872: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.882: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.882: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.882: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.882: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.882: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.882: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.882: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.882: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.882: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.882: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.882: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.882: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.882: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.882: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.882: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.882: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.892: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.892: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.892: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.892: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.892: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.892: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.892: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.892: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.892: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.892: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.892: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.892: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.892: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.892: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.892: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.892: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.902: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.902: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.902: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.902: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.902: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.902: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.902: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.902: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.902: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.902: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.902: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.902: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.902: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.902: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.902: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.902: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.912: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.912: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.912: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.912: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.912: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.912: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.912: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.912: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.912: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.912: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.912: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.912: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.912: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.912: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.912: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.912: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.923: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.923: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.923: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.923: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.923: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.923: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.923: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.923: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.923: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.923: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.923: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.923: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.923: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.923: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.923: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.923: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.932: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.932: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.932: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.932: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.932: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.932: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.932: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.932: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.942: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.942: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.942: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.942: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.942: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.942: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.942: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.942: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.942: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.942: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.942: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.942: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.942: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.942: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.942: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.942: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.952: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.952: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.952: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.952: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.952: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.952: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.952: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.952: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.952: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.952: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.952: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.952: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.952: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.952: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.952: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:50:06.952: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:50:06.982: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:50:06.982: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:06.982: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:50:06.982: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:50:06.982: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:50:06.982: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:50:06.982: ERROR/Cursor(288):     at br.appmeto.app2.HorariosCadastradosQua.setCallBacks(HorariosCadastradosQua.java:61)
10-10 14:50:06.982: ERROR/Cursor(288):     at br.appmeto.app2.HorariosCadastradosQua.onCreate(HorariosCadastradosQua.java:41)
10-10 14:50:06.982: ERROR/Cursor(288):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-10 14:50:06.982: ERROR/Cursor(288):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
10-10 14:50:06.982: ERROR/Cursor(288):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
10-10 14:50:06.982: ERROR/Cursor(288):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
10-10 14:50:06.982: ERROR/Cursor(288):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
10-10 14:50:06.982: ERROR/Cursor(288):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-10 14:50:06.982: ERROR/Cursor(288):     at android.os.Looper.loop(Looper.java:123)
10-10 14:50:06.982: ERROR/Cursor(288):     at android.app.ActivityThread.main(ActivityThread.java:4627)
10-10 14:50:06.982: ERROR/Cursor(288):     at java.lang.reflect.Method.invokeNative(Native Method)
10-10 14:50:06.982: ERROR/Cursor(288):     at java.lang.reflect.Method.invoke(Method.java:521)
10-10 14:50:06.982: ERROR/Cursor(288):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-10 14:50:06.982: ERROR/Cursor(288):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-10 14:50:06.982: ERROR/Cursor(288):     at dalvik.system.NativeStart.main(Native Method)
10-10 14:50:07.002: ERROR/Database(288): close() was never explicitly called on database '/data/data/br.appmeto.app2/databases/bancoHorario.db' 
10-10 14:50:07.002: ERROR/Database(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:50:07.002: ERROR/Database(288):     at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1810)
10-10 14:50:07.002: ERROR/Database(288):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:817)
10-10 14:50:07.002: ERROR/Database(288):     at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:851)
10-10 14:50:07.002: ERROR/Database(288):     at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:844)
10-10 14:50:07.002: ERROR/Database(288):     at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:540)
10-10 14:50:07.002: ERROR/Database(288):     at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
10-10 14:50:07.002: ERROR/Database(288):     at br.appmeto.app2.PrimeiroProAnActivity.onCreate(PrimeiroProAnActivity.java:43)
10-10 14:50:07.002: ERROR/Database(288):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-10 14:50:07.002: ERROR/Database(288):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
10-10 14:50:07.002: ERROR/Database(288):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
10-10 14:50:07.002: ERROR/Database(288):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
10-10 14:50:07.002: ERROR/Database(288):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
10-10 14:50:07.002: ERROR/Database(288):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-10 14:50:07.002: ERROR/Database(288):     at android.os.Looper.loop(Looper.java:123)
10-10 14:50:07.002: ERROR/Database(288):     at android.app.ActivityThread.main(ActivityThread.java:4627)
10-10 14:50:07.002: ERROR/Database(288):     at java.lang.reflect.Method.invokeNative(Native Method)
10-10 14:50:07.002: ERROR/Database(288):     at java.lang.reflect.Method.invoke(Method.java:521)
10-10 14:50:07.002: ERROR/Database(288):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-10 14:50:07.002: ERROR/Database(288):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-10 14:50:07.002: ERROR/Database(288):     at dalvik.system.NativeStart.main(Native Method)
10-10 14:50:46.942: INFO/System.out(288): CONTADOR: 28hora: 14minuto: 50
10-10 14:51:27.033: INFO/System.out(288): CONTADOR: 29hora: 14minuto: 51
10-10 14:52:07.113: INFO/System.out(288): CONTADOR: 30hora: 14minuto: 52
10-10 14:52:47.182: INFO/System.out(288): CONTADOR: 31hora: 14minuto: 52
10-10 14:53:27.282: INFO/System.out(288): CONTADOR: 32hora: 14minuto: 53
10-10 14:54:07.403: INFO/System.out(288): CONTADOR: 33hora: 14minuto: 54
10-10 14:54:28.553: DEBUG/SntpClient(58): request time failed: java.net.SocketException: Address family not supported by protocol
10-10 14:54:47.522: INFO/System.out(288): CONTADOR: 34hora: 14minuto: 54
10-10 14:55:27.663: INFO/System.out(288): CONTADOR: 35hora: 14minuto: 55
10-10 14:56:07.783: INFO/System.out(288): CONTADOR: 36hora: 14minuto: 56
10-10 14:56:47.942: INFO/System.out(288): CONTADOR: 37hora: 14minuto: 56
10-10 14:56:47.942: DEBUG/dalvikvm(58): GC_FOR_MALLOC freed 18832 objects / 851440 bytes in 97ms
10-10 14:57:28.012: DEBUG/dalvikvm(288): GC_FOR_MALLOC freed 8767 objects / 694880 bytes in 50ms
10-10 14:57:28.012: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:57:28.012: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:57:28.012: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:57:28.012: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:57:28.012: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:57:28.012: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:57:28.012: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:57:28.012: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:57:28.192: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:57:28.192: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:57:28.192: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:57:28.192: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:57:28.192: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:57:28.192: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:57:28.192: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:57:28.192: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:57:28.253: INFO/System.out(288): CONTADOR: 38hora: 14minuto: 57
10-10 14:57:28.263: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:57:28.263: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:57:28.263: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:57:28.263: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:57:28.263: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:57:28.263: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:57:28.263: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:57:28.263: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:57:28.272: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:57:28.272: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:57:28.272: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:57:28.272: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:57:28.272: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:57:28.272: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:57:28.272: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:57:28.272: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:57:28.283: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:57:28.283: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:57:28.283: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:57:28.283: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:57:28.283: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:57:28.283: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:57:28.283: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:57:28.283: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:57:28.292: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:57:28.292: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:57:28.292: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:57:28.292: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:57:28.292: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:57:28.292: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:57:28.292: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:57:28.292: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:57:28.303: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:57:28.303: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:57:28.303: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:57:28.303: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:57:28.303: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:57:28.303: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:57:28.303: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:57:28.303: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:57:28.312: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:57:28.312: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:57:28.312: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:57:28.312: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:57:28.312: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:57:28.312: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:57:28.312: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:57:28.312: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:57:28.312: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:57:28.312: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:57:28.312: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:57:28.312: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:57:28.312: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:57:28.312: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:57:28.312: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:57:28.312: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:57:28.323: ERROR/Cursor(288): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/br.appmeto.app2/databases/bancoHorario.db, table = null, query = SELECT COUNT (id) resul FROM AULAS
10-10 14:57:28.323: ERROR/Cursor(288): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
10-10 14:57:28.323: ERROR/Cursor(288):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
10-10 14:57:28.323: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
10-10 14:57:28.323: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
10-10 14:57:28.323: ERROR/Cursor(288):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
10-10 14:57:28.323: ERROR/Cursor(288):     at br.appmeto.app2.VerificaHora.run(MenuPrincipal.java:650)
10-10 14:57:28.323: ERROR/Cursor(288):     at java.lang.Thread.run(Thread.java:1096)
10-10 14:58:08.342: INFO/System.out(288): CONTADOR: 39hora: 14minuto: 58
10-10 14:58:48.539: INFO/System.out(288): CONTADOR: 40hora: 14minuto: 58
10-10 14:59:28.561: DEBUG/SntpClient(58): request time failed: java.net.SocketException: Address family not supported by protocol
10-10 14:59:28.613: INFO/System.out(288): CONTADOR: 41hora: 14minuto: 59
10-10 15:00:08.694: INFO/System.out(288): CONTADOR: 42hora: 15minuto: 0
10-10 15:00:48.802: INFO/System.out(288): CONTADOR: 43hora: 15minuto: 0
10-10 15:01:28.933: INFO/System.out(288): CONTADOR: 44hora: 15minuto: 1
10-10 15:02:09.012: INFO/System.out(288): CONTADOR: 45hora: 15minuto: 2
10-10 15:02:49.102: INFO/System.out(288): CONTADOR: 46hora: 15minuto: 2
10-10 15:03:29.203: INFO/System.out(288): CONTADOR: 47hora: 15minuto: 3
10-10 15:04:09.353: INFO/System.out(288): CONTADOR: 48hora: 15minuto: 4
10-10 15:04:28.578: DEBUG/SntpClient(58): request time failed: java.net.SocketException: Address family not supported by protocol
10-10 15:04:49.482: INFO/System.out(288): CONTADOR: 49hora: 15minuto: 4
10-10 15:05:29.552: INFO/System.out(288): CONTADOR: 50hora: 15minuto: 5
10-10 15:06:09.642: INFO/System.out(288): CONTADOR: 51hora: 15minuto: 6
10-10 15:06:49.752: INFO/System.out(288): CONTADOR: 52hora: 15minuto: 6
10-10 15:07:29.873: INFO/System.out(288): CONTADOR: 53hora: 15minuto: 7
10-10 15:08:10.003: INFO/System.out(288): CONTADOR: 54hora: 15minuto: 8
10-10 15:08:50.092: INFO/System.out(288): CONTADOR: 55hora: 15minuto: 8
10-10 15:09:28.582: DEBUG/SntpClient(58): request time failed: java.net.SocketException: Address family not supported by protocol
10-10 15:09:30.172: INFO/System.out(288): CONTADOR: 56hora: 15minuto: 9
10-10 15:10:10.252: INFO/System.out(288): CONTADOR: 57hora: 15minuto: 10
A

O problema é que essa thread está com um ciclo de vida além da sua activity. Sua activity deve estar “stoped”.
Um alarme é normalmente associado com um componente sonoro, mas não obrigatoriamente: ele pode ser visual, notificação, dialogo; vibratório, e, sonoro.
Depende da opção do programador, e do usuário, se for configurável.

Marky.Vasconcelos

Voce não vai encomodar o usuario com o AlarmService, voce nem precisa mostrar que está agendando uma tarefa.

Anyway… sobre o erro de banco, voce abriu algum Cursor, utilizou e não deu um close() nele.

J

Tentei criar a thread dentro de um Service, mas aconteceu a mesma coisa, funcionou mas depois de um certo tempo nao enviou a notificação =/ (não sei se fiz certo tbm)

Vo então tentar fazer pelo AlarmService!!

Mas tenho uma dúvida, a thread não é independente da Activity? Porque quando a Activity entra em Stopped ele para minha thread?
E tem algum jeito de impedir que a Activity entra em Stopped? tipo da uma “cutucada” nela pra não entrar em Stopped? rsrs

Vou fazer o AlarmService e posto aqui se deu certo ! Obrigada pela ajuda novamente
=)

J

Pessoal,

Desculpe a demora, consegui resolver o problema, seguindo a dica de vocês e criando um alarm manager !

segue o link do exemplo que utilizei.

http://www.portalandroid.org/comunidade/viewtopic.php?f=2&t=12342&hilit=start+updater

Obrigada a todos!

Criado 9 de outubro de 2012
Ultima resposta 20 de nov. de 2012
Respostas 8
Participantes 4