Pergunta

Quando o utilizador pressiona o botão voltar na minha aplicação.Aqui é o cenário:

  1. Usuário inicia o aplicativo - Atividade mostra-se
  2. Usuário pressiona botão voltar
  3. Utilizador re-inicia o aplicativo. Neste ponto, a aplicação mostra uma tela em branco, nenhum dos botões(home/volta) responder, após algum tempo Força-fechar a caixa de diálogo aparece.
    NOTA:Se o usuário pressionar "Home" e, em seguida, reinicia o aplicativo, isso não acontece, apenas se o usuário clicar em "Back" e, em seguida, reinicia-lo.

Na minha onCreate() eu tenho alguns configuração de rede de código.No entanto, onDestroy() tem o correspondente código de limpeza, então eu não entendo por que isso está acontecendo.

@Override
public void onCreate(Bundle savedInstanceState) {
    Log.d(DEBUG_TAG, "onCreate()");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

     // Aquire the multicast lock
     // Create an instance of JmDNS
     // Add a listener for Bonjour services of a given type 
}

@Override
protected void onDestroy() {
    Log.d(DEBUG_TAG, "onDestroy()");
     // Remove the services listener 
     // Set the reference to JmDNS instance null
     // Release the multicast lock
    super.onDestroy();
}

Não sei o que está acontecendo, e não sei como depurar isso.

Curiosamente - "Zeroconf Navegador" um popular aplicativo que eu fiz o download a partir do Android Market para usar para depurar minas parece ter o mesmo problema.

EDITAR:Alterado o código de onStart()/onStop() para onCreate()/onDestroy().Mesmo problema de antes.

EDITAR:Para qualquer pessoa que executa em um problema semelhante, isto é o que estava causando a minha miséria.Código Android não era o culpado:http://sourceforge.net/tracker/index.php?func=detail&aid=2933183&group_id=93852&atid=605791

Foi útil?

Solução

Você pode estar fazendo pedidos de rede no thread da INTERFACE do usuário.Você pode checkout Indolor Threading e AsyncTask para um manuseio.

Lembre-se que pode ser uma boa idéia para fazer a sua configuração e tear-down em onCreate e onDestroy. onStart pode ser chamado várias vezes durante a atividade ciclo de vida;é o código de proteção contra este caso?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top