Хорошо, я полагаю, вы новичок в Java, простите, если я ошибаюсь. Вы никогда не читаете с nimiOlemas.
boolean nimiOlemas = preferences.getBoolean("nimionolemas", false);
nimiOlemas = false;
startActivity(new Intent("viimane.voimalus.NIMEKYSIJA"));
finish();
nimiOlemas = true;
Я думаю, что вы пытаетесь инициализировать nimiOlemas, а затем, если оно ложно, начать действие, завершить вызов, а затем установить для nimiOlemas значение true, но это не то, что вы делаете. Это то, что вы хотите?
boolean nimiOlemas = preferences.getBoolean("nimionolemas", false);
if (nimiOlemas == false)
{
startActivity(new Intent("viimane.voimalus.NIMEKYSIJA"));
finish();
nimiOlemas = true;
}
= - это присвоение, == - логическое сравнение. В своем вопросе вы говорите, что проверяете значение вашего логического значения, но никогда не проверяете, а назначаете только его.