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