8

Sto sviluppando un'applicazione Blackberry utilizzando Cordova/PhoneGap. Sto recuperando diverse immagini (mappe) da un server. Inoltre, ogni 60 secondi invio informazioni sulla posizione ad esso.Troppi thread in Blackberry utilizzando PhoneGap/WebWorks

Tuttavia, di tanto in tanto quando recupendo le immagini o invio informazioni, viene visualizzato un errore. Se sono su un simulatore (BB 9930, OS 7.0.0.318), ricevo un messaggio AppError 104: Too many threads e la mia app si arresta in modo anomalo. Quando provo la mia app su un dispositivo (BB 8520, OS 5.0.0.592), l'app non si arresta solo in modo anomalo, ma ripristina il BB.

Ho visto altri post con lo stesso problema (ad esempio this one, this one o this one). Tuttavia, non ho trovato una soluzione durante la creazione dell'app utilizzando Cordova/PhoneGap (JavaScript).

Grazie!

+0

Puoi mostrare (preferibilmente codice) come stai gestendo i thread. – Brady

+0

Il problema è che non è possibile gestire i thread. Il codice con PhoneGap è in genere in javascript/html. –

risposta

0

Questo potrebbe non essere correlato, ma ho avuto un problema simile quando ho fatto molte richieste da un'app nativa su un BB Bold. Il thread di connessione non è stato chiuso correttamente dopo aver ricevuto la risposta.

provare quanto segue:

  • cambiamento GET < -> POST.
  • cambia HTTP < -> HTTPS.

se il server è tuo, valutare la modifica dell'API per restituire tutte le immagini come una sola e utilizzare un offset/ritaglio durante la visualizzazione. Potrai risparmiare larghezza di banda e aprire meno connessioni. la tua app verrà caricata più velocemente.

es: http://www.ibloomstudios.com/articles/misunderstood_css_clip/

0

dubito se l'API PhoneGap causa questo perché è fondamentalmente un livello. Forse hai un problema con il simulatore?

0

Dal momento che si sta anche testando su Blackberry 8520, si consiglia di mantenere il numero massimo di thread - in esecuzione concurrently- in qualsiasi punto del tempo nella vostra applicazione - meno di 12

Dal momento che si sta utilizzando PhoneGap, è probabile che possa iniziare i thread per la tua applicazione.

Se il dispositivo è collegato al sistema, collegarlo a Blackberry JDE e vedere quali thread sono attivi per analizzare se è possibile riprogrammare le attività.

Stai utilizzando AJAX per ottenere i riquadri della mappa e inviare la posizione al tuo server?

Se si utilizza AJAX, è possibile mantenere un contatore in JavaScript per mantenere un controllo sulle richieste.

Inoltre, hai provato WebWorkers, ti consentirebbero di eseguirli tutti all'interno di un singolo thread.

Se tutto fallisce, puoi anche sviluppare il tuo plugin Phonegap personalizzato per fare cose simili con un'API di interfaccia Java Script.