Que tal, creo que la forma que dice @Negimaru está bien, pero ese booleano es volátil, es decir, que se va a estar reiniciando y no va a mantener su estado, yo tengo esta opción:
Usar Shared Preference para guardar una variable que te diga que ya se mostró o no, de esta manera si es igual a 1, es decir, si ya se ah mostrado el Toast, que lo guarde, de esta manera cuando vuelvas a caer en ese rango la variable va a cargar el valor desde Shared Preference y ya no lo mostrará.
//Variable Global
private int ya_esta_mostrado;
public void mostrar_mensaje(){
int puntaje = Integer.parseInt(String.valueOf(user.total+_actual));
if (puntaje>=100 && puntaje<=150)
{
if (ya_esta_mostrado == 1) {
Log.d(TAG, "¡Ya se ah mostrado! = " + ya_esta_mostrado);
} else {
alerta_puntaje();
ya_esta_mostrado = 1;
SharedPreferences guardar_mensaje_mostrado = getSharedPreferences("mostrar_prefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = guardar_mensaje_mostrado.edit();
editor.putInt("mensaje_mostrado_key", ya_esta_mostrado);
editor.commit();
}
}
}
Para cargar el valor guardado en Shared Preference escribes lo siguiente dentro de onCreate de tu actividad:
SharedPreferences sp = getSharedPreferences("mostrar_prefs", Activity.MODE_PRIVATE);
ya_esta_mostrado = sp.getInt("mensaje_mostrado_key", -1);
Aquí como se puede ver, obtiene el valor getInt
de la key y se le asigna un valor por default.
Con eso debe de funcionar.