我有一个应用程序,当该应用程序被强制杀死时,我需要它来访问代码。下面,我留下了代码以便更好地理解,但是它位于onDestroy中,并且在应用程序被迫关闭时无法运行,只是它想要的!
但是,我需要用户退出并返回应用程序,并且当它完全关闭时,它将运行此代码!
@Override
protected void onDestroy() {
//Ao fechar completamente a tela de validação com o campo textValidacao nulo ou incorreto, o cadastro no autenticacao e no banco de dados sao apagados, para evitar o cadastro de usuarios não validados.
String codigoDigitado = codigoValidacao.getText().toString(); //Pega o texto da caixa de texto8
if (! codigoDigitado.equals(tokenGerado)) {//Verifica se esse texto e igual, caso ele seja diferente do tokenGerado
user = UsuarioFirebase.getUsuarioAtual();//Pega usuario atual
user.delete().addOnCompleteListener(new OnCompleteListener<Void>() { //deleta o usuario no Auth
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {//Testa para ver se funcionou
Log.i("Usuario deletado(auth)","Sim");
}else{
Log.i("Usuario deletado(auth)","Não");
}
}
});
DatabaseReference firebaseRef = ConfiguracaoFirebase.getFirebase();//Excluir registro no realtime database
final String identificadorUsuarioLogado = Base64Custom.codificarBase64(UsuarioFirebase.getIdentificadorUsuario());//Id usuario
DatabaseReference usuarioExcluirRef = firebaseRef//Referencia do usuario
.child("usuarios")
.child(identificadorUsuarioLogado);
usuarioExcluirRef.removeValue();//Remove os valores
DatabaseReference testeOkRef = firebaseRef.child("usuarios");//Acessa o no usuarios
testeOkRef.addListenerForSingleValueEvent(new ValueEventListener() {//testa se o usuario foi deletado, vendo se ainda existe o identificadorUsuarioLogado no nó usuarios
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChild(identificadorUsuarioLogado)){//Verifica sem tem o filho no nó
Log.i("Usuario deletado(Banco)","Não");
Toast.makeText(ValidadorActivity.this, "Usuario deletado(Banco) - Não", Toast.LENGTH_LONG).show();
}else {
Log.i("Usuario deletado(Banco)","Sim");
Toast.makeText(ValidadorActivity.this, "Usuario deletado(Banco) - Sim", Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
autenticacao.signOut();
Intent i = new Intent(ValidadorActivity.this, CadastroUsuarioActivity.class);
startActivity(i);
finish();
super.onDestroy();
}