isSeen
всегда ложно, потому что вы забыли назначить последнее значение из предпочтения.
, и когда вы переходите от другого действия к этому, оно все равно истинно, потому что вы объявили его как статическое, это означает, что значениеостаются до тех пор, пока приложение живет.
Решение:
добавить isSeen=readFromSharedPrefs();
до того, как будет указано
public void milestoneCheck(){
totalKm = (int) Float.parseFloat(TripsInfo.km.get(TripsInfo.userRank - 1));
isSeen=readFromSharedPrefs();
Log.d("test", "before" + isSeen);
if (totalKm == 84 && !isSeen) {
updateTrue(true);
Log.d("test", "inside" + isSeen);
isSeen=readFromSharedPrefs();
}
Log.d("test", "after" + isSeen);
}