Definir o cancelamento da caixa de diálogo como falso é suficiente e, se você tocar fora da caixa de diálogo de alerta ou clicar no botão Voltar, a caixa de diálogo de alerta desaparecerá. Então use este:
setCancelable(false)
E a outra função não é mais necessária:
dialog.setCanceledOnTouchOutside(false);
Se você estiver criando uma caixa de diálogo temporária e pensando em colocar essa linha de código, aqui está um exemplo:
new AlertDialog.Builder(this)
.setTitle("Trial Version")
.setCancelable(false)
.setMessage("You are using trial version!")
.setIcon(R.drawable.time_left)
.setPositiveButton(android.R.string.yes, null).show();