0

嗯,我知道android設備registration_id -s在應用程序版本更新後發生更改。因此,一旦我在Play商店和用戶設備上更新應用程序(自動)將應用程序更新至新版本,如何將通知推送至其設備? - 因爲在該時間間隔內(應用程序已更新,但從未在更新後打開)設備需要重新註冊。應用程序更新後的推送通知

回答

2

當你的應用程序更新時,系統發出兩次廣播:ACTION_MY_PACKAGE_REPLACED(只發送給您的應用程序,在API 12(3.1可用)或更高版本)和ACTION_PACKAGE_REPLACED(發送到每一個應用程序,請檢查意向getData()得到包名稱,可在所有API級別上使用)。

您可以在您的AndroidManifest.xml中創建一個BroadcastReceiver,它偵聽廣播並啓動一個服務,然後按照PushBullet's blog of reliable GCM的建議重新註冊到GCM。

我強烈建議禁用任何接收器在Android 3.1+設備上廣播ACTION_PACKAGE_REPLACED廣播,否則您的接收器/進程也會在其他應用上觸發(在這種情況下,您需要兩個接收器:一個用於< 3.1,一個用於> = 3.1,並使用帶有布爾資源的android:enabled以基於API級別適當地禁用它們)。