Android: Como atividade de primeiro plano perto de atividade ativo?
-
18-09-2019 - |
Pergunta
Eu criei uma aplicação que está de forma assíncrona comunicação com o servidor. Quando o aplicativo faz uma solicitação do servidor um novo diálogo (atividade) com "carregamento" notificação é criado. Os principais implementos atividade métodos para a manipulação de respostas do servidor e eu gostaria de fechar a atividade em primeiro plano quando a principal atividade recebe a resposta do servidor.
diálogo Notificação é criado da seguinte forma:
private void showServerRequestDialog(String actionLabel){
Intent intent = new Intent(this, DlgServerRequest.class);
intent.putExtra(SERVER_REQUEST_ACTION, actionLabel);
startActivity(intent);
}
Então, quando o usuário tenta para autenticar o seguinte método é chamado:
private void authenticateUser(String IMEI, String username, String password){
mEncoderConnection.authenticateRequest(IMEI, username, password);
showServerRequestDialog("Authenticating...");
}
e onAuthenticateResponse resposta de autenticação alças:
public void onAuthenticateResponse(AuthenticateResponse pkg) {
//code for response handling
//TODO: close ServerRequestDialog
}
}
Eu apreciaria se alguém poderia sugerir uma maneira de fechar o diálogo de notificação (DlgServerRequest) quando o onAuthenticateUser () é executado.
Solução
Por que não usar um ProgressDialog
real ou algum outro Dialog
? Então, tudo que você precisa fazer é dismissDialog()
, e está feito?
Se isso é inaceitável, você tem dois cursos principais de ação que eu posso ver:
- Mova seu lógica de autenticação para a classe
DlgServerRequest
, para que ele possafinish()
si. - Coloque sua instância de sua classe
DlgServerRequest
em um membro de dados estáticos para que o seu principal atividade pode chamarfinish()
nele
Se você escolher a opção # 2, é realmente importante para null
que membro de dados estáticos para vazamentos de memória evitar.