Использовать логическое значение для проверки его первого выполнения кода или нет.
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedpreferences.edit();
if(sharedpreferences.getBoolean("is_first_exec",false))
{
editor.putBoolean("is_first_exec",false);
//your code here ...
}
getBoolean()
, как и любой другой метод get SharedPreference, принимает второй параметр по умолчанию, который возвращает null первый раз (поскольку в файле SharedPreference ничего нет). Таким образом, код внутри блока if(){...}
будет выполняться только один раз.
Сноски: SharedPreferences
Результат левого соединения в порядке. Левое соединение даст вам все строки в левом списке (в вашем случае A) и строки, которые имеют соответствующие ключи в вашем правом списке (список B). Это означает, что все строки в A будут выбраны в левом соединении.
Может быть, подмножество может решить вашу проблему