Month: February 2012

WP7 SDK 7.1 : come forzare il tombstoning durante il debug

Con il passaggio dalla versione di Windows Phone 7 (NoDo) a quella attuale 7.5 (Mango), è stato introdotto il Fast Application Switching grazie il quale il passaggio tra più applicazioni “contemporaneamente” aperte è stato reso molto più veloce.

Ciò è reso possibile dal fatto che, premendo il pulsante Back a partire dalla prima pagina della nostra applicazione, quest’ultima non va direttamente nello stato di Tombstoned ma bensì nello stato di Dormant ed il sistema operativo ne tiene attivo lo stato interno in memoria. Ovviamente, la memoria viene comunque liberata quando il numero delle applicazioni aumenta e se il quantitativo di memoria libera si riduce drasticamente; in tal caso, l’applicazione passa dal Dormant al Tombstoned.

2677.Tombstoning-PreMango_78B09083

WP7 – Pre Mango

WP7.5 - Mango

WP7.5 – Mango

A causa di questa funzionalità, con il nuovo SDK 7.1 (per Mango), per poter testare se le operazioni di salvataggio stato e di ripristino della nostra applicazione funzionano correttamente nel caso si verifichi il tombstoning, è necessario attivare un’opzione di debug nel progetto. In caso contrario, il sistema operativo porterà l’applicazione in stato di Dormant ed alla sua riattivazione ritroveremo comunque lo stato della nostra pagina già pronto senza necessità di alcun intervento da parte nostra.

Per attivarlo, basta andare nelle proprietà del progetto, nella scheda Debug ed attivare la checkbox “Tombostone upon deactivation while debugging”.

0827.tomb_25492490

Ricapitolando…attivando tale opzione, la nostra applicazione passerà direttamente nello stato di Tombstoned, con la necessità di eseguire da codice il salvataggio e ripristino successivo del proprio stato; disattivandola, viceversa, passerà nello stato di Dormant lasciando inalterato il proprio stato alla sua riattivazione.

 

Cambiare la skin dell’emulatore Windows Phone 7

Stufi della solita skin dell’emulatore di Windows Phone 7 ?

Su CodePlex è possibile scaricare il Windows Phone 7 Emulator Skin Switcher che mette a disposizione la possibilità di modificare la skin dell’emulatore scegliendo tra numerosi modelli di smartphone attualmente in commercio.

Una volta installato ed avviato, ci basterà semplicemente selezionare uno degli skin visualizzati ed il gioco è fatto !

7571.skin_588F7209

Questo è il mio emulatore Nokia Lumia 800 !!

0825.lumia_3ACD25A3

Un trucco per avere l’Intellisense sull’InputScope nello XAML

La tastiera di WP7 è in grado di visualizzare caratteri differenti in base al tipo di informazione che vogliamo far acquisire dalla nostra applicazione. La modalità di visualizzazione può essere cambiata impostando la proprietà InputScope messa a disposizioni dai TextBox e PasswordBox.

<TextBox x:Name="Text" Height="75"/>
<TextBox x:Name="Phone" InputScope="TelephoneNumber" Height="75"/>

Nell’esempio precedente, il primo TextBox visualizzerà il layout standard della tastiera mentre il secondo permetterà la visualizzazione dei tasti numerici per facilitare l’inserimento di un numero telefonico.

7725.text_3F7BA1AB6813.phone_7EC92F6E

L’elenco dei valori che è possibile specificare per l’InputScope sono numerosissimi e purtroppo l’Intellisense non ci viene in aiuto….a meno che….

… a meno che non utilizziamo la seguente modalità, molto più prolissa, di settare l’InputScope.

<TextBox Height="75">
    <TextBox.InputScope>
        <InputScope>
            <InputScopeName NameValue="TelephoneNumber"/>
        </InputScope>
    </TextBox.InputScope>
</TextBox>

2477.inputscope_161433E0

WP7 : bug sul Reminder.NavigationUri ad applicazione avviata

Utilizzando la classe Reminder con l’SDK per Windows Phone 7.5 (Mango), ho riscontrato un bug (se così si può chiamare) relativamente alla proprietà NavigationUri ed al suo funzionamento.

Tale property permette di impostare una pagina della nostra applicazione verso la quale poter navigare nel momento in cui scatta il reminder e l’utente clicca su di esso.

Ebbene, ho constatato che se il reminder scatta quando la nostra applicazione è già in aperta, la navigazione verso l’uri impostato non funziona. Viceversa, funziona correttamente quando siamo fuori dalla nostra applicazione.