Pergunta

Estou mantendo uma aplicação J2ME onde eu encontrei uma solicitação http para http://www.google.com na inicialização do aplicativo. Perguntei o desenvolvedor porque é que há uma solicitação ao Google. Ele disse que desta forma as outras solicitações que o aplicativo faz seria mais rápido.

Eu removi este pedido para google.com e os outros pedidos ficou mais lento.

Alguém pode explicar por que isso aconteceu? Como posso fazer outro pedido mais rápido sem fazer pedidos anteriores?

EDIT:

Fazendo solicitação ao Google na inicialização:

  • Primeiro pedido (após a inicialização) = 20seg
  • Repetindo o primeiro pedido = 5 segundos

Sem fazer solicitação na inicialização:

  • Primeiro pedido = 40seg
  • Repetindo o primeiro pedido = 5 segundos
Foi útil?

Solução

Em um dispositivo móvel iniciar a conexão web vai levar algum tempo e muitas vezes a JVM vai deixar a conexão aberta para a duração do MIDlet em execução (conexões mais modernos são cobrados por byte - Edge, GPRS, Wi-Fi). Então, se uma conexão é feita sobre startApp, você pode encontrar a conexão permanecerá aberta e toda a comunicação não vai precisar abrir uma conexão, somente os dados enviados. Tão rápido e mais confiável!

Este comportamento é plataforma específica, não MIDP2 não estipulam que isso seja verdade (assim Nokias podem diferir de Samsungs etc).

Como conectar a 127.0.0.1 provavelmente não vai enganar a JVM, que pode decidir que não precisa de uma conexão GPRS aberta para isso. Novamente específico da plataforma.

James

Outras dicas

... talvez o primeiro pedido inicializa a camada de rede (*) no dispositivo e talvez também a JVM.

Estou certo de que ele funciona com www.microsoft.com também: -)

*) Eu suspeito que isso depende de qual dispositivo você está executando. Eu não tenho idéia o que está acontecendo, mas não pode ser qualquer coisa. Por exemplo:. Iniciando o dispositivo de rádio, a criação de uma sessão com o operador de rede, carregamento e começar as aulas na JVM

Tente se conectar ao 127.0.0.1 em vez de google e ver se isso faz tentativas posteriores mais rápido.

Se o aplicativo está fazendo um monte de initalizations que leva um tempo antes de fazer a primeira tentativa de conexão real, você pode iniciar um novo tópico cedo que faz uma tentativa de conexão. Talvez isso irá reduzir o tempo de espera total.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top