Pessoal.
Meu processo de Importação acabou ficando assim, mas ainda continuo achando lento. Onde pode estar causando esta lentidão?
DataBase = new DadosBD(Singleton.getContextoAplicacao());
SoapObject request = new SoapObject(this.getWsNameSpace(), this.getWsNomeMetodo());
request.addProperty("representante", WsRepresentante);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.implicitTypes = false;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(this.getWsUrl());
httpTransport.call(this.getWsNameSpace() + "" + this.getWsNomeMetodo(), envelope);
SoapObject result = (SoapObject) envelope.getResponse();
if (result != null) {
int resultCount = result.getPropertyCount();
if(resultCount > 0){
SoapObject objResult = new SoapObject();
SoapObject objSoap = new SoapObject();
objResult = (SoapObject) result.getProperty(1);
if(objResult.getPropertyCount() > 0){
objSoap = (SoapObject) objResult.getProperty(0);
int propertyResultCount = objSoap.getPropertyCount();
if (propertyResultCount > 0){
DataBase.BeginTransaction();
SQLiteStatement stmtInsert = DataBase.getDataBase().compileStatement(DataBase.ExecInsertBuilder(Tabela, TabelaColunaComposta));
SQLiteStatement stmtSelect = DataBase.getDataBase().compileStatement(DataBase.ExecSelectBuilder(false, Tabela, TabelaSelecaoArgumentos, TabelaSelecao, TabelaGroupBy, TabelaHaving, TabelaOrderBy, "1"));
SQLiteStatement stmtUpdate = DataBase.getDataBase().compileStatement(DataBase.ExecUpdateBuilder(Tabela, TabelaColunaComposta, TabelaWhereArgumentos));
this.Dados = new ContentValues();
for (int currentProperty = 0; currentProperty < propertyResultCount; currentProperty++) {
SoapObject obj = (SoapObject) objSoap.getProperty(currentProperty);
int attributeResultCount = obj.getPropertyCount();
for(int index = 0; index < attributeResultCount; index++){
PropertyInfo pi = new PropertyInfo();
obj.getPropertyInfo(index, pi);
stmtInsert.bindString(index + 1, ((pi.getValue().toString().equals("anyType{}")?(""):(pi.getValue().toString()))));
stmtUpdate.bindString(index + 1, ((pi.getValue().toString().equals("anyType{}")?(""):(pi.getValue().toString()))));
this.Dados.put(pi.name.toString(), ((pi.getValue().toString().equals("anyType{}")?(""):(pi.getValue().toString()))));
}
for (int i = 0; i < this.getCamposPK().length; i++) {
stmtSelect.bindString(i + 1, this.Dados.get(CamposPK[i].toString()).toString());
}
if(!(stmtSelect.simpleQueryForLong()==1)){
stmtInsert.executeInsert();
}else{
stmtUpdate.execute();
}
}
DataBase.SetTransaction();
DataBase.EndTransaction();
}
}
}
}
On Monday, April 15, 2013 5:31:54 PM UTC-3, Guilherme Bernardi wrote:
Pessoal, boa tarde.Em outros tópicos, comentei que estava com um problema de controle e performance de um consumo de um webservice, que retorna grande volume de dados, bastante gente sugeriu utilizar Service.Estou estudando e olhando alguns conteúdos na internet, mas tenho algumas dúvidas.Por exemplo no meu caso eu tenho um aplicativo, que quando o usuário baixa ele vai com pouquíssimos dados praticamente só o que é dado fixo. E as demais tabelas são preenchidas no processo de importação de dados, que chama diversos métodos em um webservice e vai preenchendo as tabelas.Eu estava utilizando uma AsyncTask setava o cancelamento como false e etc. E exibia um dialog pedindo para o usuário aguardar.Pelo que notei nos exemplos o pessoal utiliza o Service para processos que ficam rodando em paralelo e não exibem feedback para o usuário, no meu caso eu gostaria realmente de manter o usuário aguardando a importação.Neste caso eu posso dar o start em meu Service dentro de uma AsyncTask?Outra coisa se o usuário fechar o aplicativo o Service para de funcionar ou continua rodando?Uma outra dúvida também, eu estava pensando como fazer um processo que por exemplo tentasse verificar de 30 em 30 minutos ou de 1 hora em 1 hora se há atualizações disponíveis no webservice, chamando um método simples e caso houvesse ai eu poderia gerar uma notificação para o usuário.Neste caso eu também posso implementar através de um Service e fazer esse tipo de implementação nele?Isso pode prejudicar a performance do aplicativo ou do aparelho?Obrigado desde já.
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/groups/opt_out.
0 comentários:
Postar um comentário