Thiago,
-- Dessa forma, eu tenho que salvar no background tb e no onPostExecute chamar a outra AsyncTask?
É bem "aceito" salvar as coisas no doInBackground?
Em segunda-feira, 16 de novembro de 2015 14:08:34 UTC-3, Thiago escreveu:
Em segunda-feira, 16 de novembro de 2015 14:08:34 UTC-3, Thiago escreveu:
O onPostExecute da AsyncTask já é executado na main thread. Me parece que você queria que ele estivesse sendo executado em background ainda (só isso pra explicar o porque tem um Handler junto com a AsyncTask).Por isso está travando. O seu save no banco de dados está sendo feito na main thread.2015-11-12 9:36 GMT-02:00 Leonardo Benedeti <leonardo...@gmail.com>:Fala cara,O google já mudou o modo de fazer requisições amigo.Recomendo que procure pela lib Volley, tem documentação dela no developer.android.com porem tem muitos exemplos otimos na internet já. Vale a pena mudar, ela é bem mais rapida que async task.
E também recomendo uso de progressBar, o widget mesmo. Tudo fica mais simples e com menos código.Espero ter ajudado.Abraço
Em quarta-feira, 11 de novembro de 2015 17:14:38 UTC-2, kalinn...@gmail.com escreveu:Gente,Sempre que eu vou receber dados do servidor via json, o progressDialog meio que trava no momento em que eu vou salvar esses dados no banco de dados (estou usando Active Android).Alguém saberia me dizer como corrigir isso e fazer com que ele fique em execução?*O processo de baixar e salvar funciona perfeitamente. O problema é só esse ProgressDialog que trava por um momentopublic class LoginActivity extends AppCompatActivity implements View.OnClickListener, AsyncResponse{
private ProgressDialog pd;
private EditText etMatricula;
private EditText etSenha;
private Button btLogin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_activity );
iniciar_componentes();
}
private void iniciar_componentes() {
etMatricula = (EditText) findViewById(R.id.et_matricula);
etSenha = (EditText) findViewById(R.id.et_senha);
btLogin = (Button) findViewById(R.id.bt_login);
btLogin.setOnClickListener(this );
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bt_login:
String matricula = etMatricula.getText().toString();
String senha = etSenha.getText().toString();
if(matricula.equals("") || senha.equals("")){
Util.showAlertDialog(LoginActivity.this, R.string.matricula_senha_empty );
return;
}
pd = new ProgressDialog(this);
pd.setMessage(getResources().getString(R.string.login));
pd.show();
try {
JSONObject Jobject = new JSONObject();
Jobject.put("matricula", matricula);
Jobject.put("senha", senha);
MinhaAsyncTask task = new MinhaAsyncTask(LoginActivity.this );
task.execute(Constants.LOGIN_URL , Jobject);
}catch(Exception e){
Log.d(Constants.TAG, e.getMessage(), e.getCause());
}
break;
}
}
public Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
if ((pd != null) && (pd.isShowing()))
pd.dismiss();
switch (msg.what) {
case Constants.LOGIN_OK:
startActivity(new Intent(LoginActivity.this, HomeActivity.class));
finish();
break;
case Constants.LOGIN_FAIL:
Util.showAlertDialog(LoginActivity.this, R.string.login_fail);
break;
}
};
};
@Override
public void processFinish(String output) {
if (output != null) {
try {
JSONObject Jobject = new JSONObject(output);
String result_login = Jobject.getString("result");
if (result_login.equalsIgnoreCase("OK")) {
JSONArray Jarray = Jobject.getJSONArray("servicos" );
for (int i = 0; i < Jarray.length(); i++) {
Servicos servico = new Servicos();servico.id = Jarray.getJSONObject(i).getInt( "id");servico.descricao = Jarray.getJSONObject(i).getInt( "descricao");servico.save();
}
handler.sendEmptyMessage(Constants. LOGIN_OK);
} else {
handler.sendEmptyMessage(Constants. LOGIN_FAIL);
}
} catch (Exception e) {
handler.sendEmptyMessage(Constants. LOGIN_FAIL);
}
} else {
handler.sendEmptyMessage(Constants. LOGIN_FAIL);
}
}
}public class MinhaAsyncTask extends AsyncTask {
private AsyncResponse response;
public MinhaAsyncTask(AsyncResponse response){
this.response = response;
}
@Override
protected Object doInBackground(Object[] params) {
HttpCore core = new HttpCore();
try {
return core.doPostRequest(params[0].toString(), params[1].toString());
}catch(ConnectException e){
return Constants.CONNECTION_ERRO;
}catch(Exception e){
Log.d(Constants.TAG, e.getMessage(), e.getCause());
}
return null;
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
try {
response.processFinish(o.toString());
}catch(Exception e){
response.processFinish(null);
}
}
}--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com .
For more options, visit https://groups.google.com/d/optout .
--Thiago MouraSoftware Engineer+55 (11) 9 8178 1763
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.






0 comentários:
Postar um comentário