Я читаю документацию здесь: http://developer.android.com/google/gcm/gs.htmlРучка изменение регистрации идентификаторов в GCM клиенте
Смотрите этот метод:
private String getRegistrationId(Context context) {
final SharedPreferences prefs = getGCMPreferences(context);
String registrationId = prefs.getString(PROPERTY_REG_ID, "");
if (registrationId.length() == 0) {
Log.v(TAG, "Registration not found.");
return "";
}
// check if app was updated; if so, it must clear registration id to
// avoid a race condition if GCM sends a message
int registeredVersion = prefs.getInt(PROPERTY_APP_VERSION, Integer.MIN_VALUE);
int currentVersion = getAppVersion(context);
if (registeredVersion != currentVersion || isRegistrationExpired()) {
Log.v(TAG, "App version changed or registration expired.");
return "";
}
return registrationId;
}
Он возвращает пустую строку, если нет идентификатора сохраняется в SharedPreferences
версии программного обеспечения или приложение изменилось или срок действия учетной записи истек.
И во всех этих трех случаях вызывается метод registerBackground()
. Этот метод делает HTTP-запрос на моем веб-сервере, и сервер хранит идентификатор регистрации в базе данных.
Но если это произойдет, каждое обновление версии или истечение срока регистрации приведет к созданию новой строки внутри TABLE, которая находится на моем сервере.
Есть ли способ получить, когда событие изменения идентификатора регистрации происходит на стороне клиента? Потому что, если это произойдет, я обновлю строку в ТАБЛИЦЕ.
null String? пустым или нулевым? – Raptor