>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Explicação de código


olá rafael, voa noite. Tenho um código no android que se conecta com um servidor usando a classe httpclient, porem tenho que usar esse fragmento de código para poder rodar a aplicação sem erro. O código que coloco é o seguinte:


if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}


Você saberia me dizer o que esse código faz?



3 Respostas


Olá

Thadeu

Mas poque você deseja utilizar este procedimento?




é o seguinte, eu estou usando o seguinte código:

Minha activity login:


public class LoginActivity extends Activity {
//static final String URL = "URL";
static final String URL = "http://192.168.1.65/android/conexao.php";
EditText edtLogin, edtSenha;
Button btnLogar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);

if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}

edtLogin = (EditText)findViewById(R.id.edtLogin);
edtSenha = (EditText)findViewById(R.id.edtSenha);
btnLogar = (Button)findViewById(R.id.btnLogar);



btnLogar.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// Starta a thread assíncrona a partir do AsyncTask
new LoadingAsync().execute();


}
});

}



private class LoadingAsync extends AsyncTask{

ProgressDialog loading = new ProgressDialog(LoginActivity.this);

/**
* Método chamado antes da thread principal.
* É o primeiro a ser executado.
*/
@Override
protected void onPreExecute() {
// Seta a mensagem de "Carregando..." recuperando-a do arquivo de "strings.xml"
loading.setMessage("Carregando...");
loading.show();
}


@Override
protected String doInBackground(Void... params) {

String login = edtLogin.getText().toString().trim();
String senha = edtSenha.getText().toString().trim();
String retorno = null;
XMLParser objetoXML = new XMLParser();
String xml = objetoXML.validarUsuario(URL, login, senha);
Log.i("login", login);
Log.i("senha", senha);
if(xml.equals("") || xml.equals(null)){
retorno = "não retornou";
}else{
Document doc = objetoXML.getDomElement(xml);
NodeList nl = doc.getElementsByTagName("item");
String codigo = "";

if(nl.getLength() > 0){
Element e = (Element) nl.item(0);
codigo = objetoXML.getValue(e, "codigo");

Intent intent = new Intent(LoginActivity.this, LutasActivity.class);
intent.putExtra("codigo", codigo);
startActivity(intent);
finish();
}else{
retorno = "não retornou";
}

}
return retorno;
}

/**
* Método executado ao final da thread principal
* É nele que são exibidas as mensagens de processamento final.
*/
@Override
protected void onPostExecute(String result) {
if (result != null) {
// Finaliza o loading...
loading.dismiss();
Toast.makeText(LoginActivity.this, "Usuário ou Senha Incorreto!!!", Toast.LENGTH_LONG).show();

}
}
}
}





ele só funciona quando coloco aquele fragmento de código