Google 云消息在 7 天后过期
Google Cloud Messaging expires after 7 days
我在 android 应用程序中使用 GCM。我的应用程序完全基于 GCM。我实现了客户端和服务器端并且工作正常。我在 google 服务器的注册到期时遇到问题。我注册成功,但它只注册接下来的 7 天。我已经尝试过这个`GCMRegistrar.setRegisteredOnServer(_context, true);
final long DEFAULT_ON_SERVER_LIFESPAN_MS =
1000 * 3600 * 24 * 365;
GCMRegistrar.setRegisterOnServerLifespan(_context, DEFAULT_ON_SERVER_LIFESPAN_MS);`
但它仍在注册密钥 7 天。我知道如果我们更改版本代码 google 服务器可能会更改 GCM 密钥,但现在我不会更改此版本代码。知道我应该怎么做才能克服这个过期问题。
查看 GCMRegistrar 后 class 我看到了这个函数实现
public static void setRegisteredOnServer(Context context, boolean flag)
{
SharedPreferences prefs = getGCMPreferences(context);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("onServer", flag);
long lifespan = getRegisterOnServerLifespan(context);
long expirationTime = System.currentTimeMillis() + lifespan;
Log.v("GCMRegistrar", "Setting registeredOnServer status as " + flag + " until " + new Timestamp(expirationTime));
editor.putLong("onServerExpirationTime", expirationTime);
editor.commit();
}
他们在获取生命周期后在此函数中设置过期时间。我犯了一个错误,我在调用此函数后设置了生命周期,因此在 GCMRegistrar class 中设置的默认生命周期为 7 天。所以我需要先根据自己的需要设置lifetime,然后再调用setRegisterOnServer
函数。现在它使我在 setRegisterOnServerLifespan(context, lifespan)
中设置的 GCM 密钥过期。
我在 android 应用程序中使用 GCM。我的应用程序完全基于 GCM。我实现了客户端和服务器端并且工作正常。我在 google 服务器的注册到期时遇到问题。我注册成功,但它只注册接下来的 7 天。我已经尝试过这个`GCMRegistrar.setRegisteredOnServer(_context, true);
final long DEFAULT_ON_SERVER_LIFESPAN_MS =
1000 * 3600 * 24 * 365;
GCMRegistrar.setRegisterOnServerLifespan(_context, DEFAULT_ON_SERVER_LIFESPAN_MS);`
但它仍在注册密钥 7 天。我知道如果我们更改版本代码 google 服务器可能会更改 GCM 密钥,但现在我不会更改此版本代码。知道我应该怎么做才能克服这个过期问题。
查看 GCMRegistrar 后 class 我看到了这个函数实现
public static void setRegisteredOnServer(Context context, boolean flag)
{
SharedPreferences prefs = getGCMPreferences(context);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("onServer", flag);
long lifespan = getRegisterOnServerLifespan(context);
long expirationTime = System.currentTimeMillis() + lifespan;
Log.v("GCMRegistrar", "Setting registeredOnServer status as " + flag + " until " + new Timestamp(expirationTime));
editor.putLong("onServerExpirationTime", expirationTime);
editor.commit();
}
他们在获取生命周期后在此函数中设置过期时间。我犯了一个错误,我在调用此函数后设置了生命周期,因此在 GCMRegistrar class 中设置的默认生命周期为 7 天。所以我需要先根据自己的需要设置lifetime,然后再调用setRegisterOnServer
函数。现在它使我在 setRegisterOnServerLifespan(context, lifespan)
中设置的 GCM 密钥过期。