Per prima cosa, terminare la schermata iniziale.
Ho aggiunto un'altra voce nel menu:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/stopTimer"
android:title="Stop Timer">
</item>
<item
android:id="@+id/showSettings"
android:title="Impostazioni" >
</item>
<item
android:id="@+id/terminaSchermata"
android:title="Nascondi" >
</item>
</menu>
E la gestisco con questo codice:
@Override
public boolean onOptionsItemSelected(MenuItem menuItem){
switch(menuItem.getItemId()){
case R.id.stopTimer:
cancellaTimer();
break;
case R.id.showSettings:
cancellaTimer();;
Intent i=new Intent(MainActivity.this,Settings.class);
startActivity(i);
break;
case R.id.terminaSchermata:
finish();
}
}
return true;
}
Però mi rimane nei recent tasks.E' già impostato nel manifest autoRemoveFromRecents:
<activity
android:name=".Lista"
android:autoRemoveFromRecents="true"
android:screenOrientation="portrait" />
Ma, come ho imparato, nelle versioni superiori a 21 è necessario usare, per terminare e rimuovere dai recenti, finishAndRemoveTasks.
Lo uso e ottengo errore perché l'applicazione è indirizzata anche a versioni più antiche della 21.
Per far ciò, trovo il codice che adatta l'istruzione alla versione:
case R.id.terminaSchermata:
if(Build.VERSION.SDK_INT>=21){
finishAndRemoveTask();
}else{
finish();
}
E così funziona, rimuovendo completamente l'activity dai recenti una volta terminata.
Nessun commento:
Posta un commento