ラフで準備完了のサーバーから Android フォンにメッセージを受け入れて表示する、スケルトン クライアント/サーバー GCM アプリをまとめました。サンプルの Android アプリを起動し、アプリとデバイスの組み合わせを GCM サーバーに登録したときに、デバッガーでキャプチャした値として、アプリの registration_id がサーバー側にハードコーディングされているため、「スケルトン」および「ラフ アンド レディ」と言います。私が考え始めたとき、サーバー上の単純なデータベースにアクセスしてreg_id / deviceの組み合わせを保存するための読み取り/書き込みメカニズムを提供する作業を開始しようとしていました。
この reg_id はいつでも期限切れになる可能性があることを知っています。Google がそう言っているからです。IDがまだOK IFであることを確認する方法はドキュメントから明らかであり、それは大きなIFです。アプリを再度起動します。しかし、なぜ私、または他のユーザーが再起動する必要があるのでしょうか? マニフェストに登録されている GCMIntentService は、必要に応じてメッセージを取得しているため、何らかの理由でアプリを再度実行する必要はありません。そのため、ID の有効期限が切れると、メッセージの取得が停止します。サーバーはリターン コードから認識している可能性がありますが、アプリに通知することはできません。アプリを再度実行してonCreate()
、おそらくregisterClient()
メソッドを実行しない限り、回復はありません。
では、ID の有効期限が切れるとどうなるでしょうか。IntentService の on.. メソッドが実行されることはありません。Google 自身が、有効期限が近づいているという通常のメッセージを送信しますか? 毎日実行して ID をチェックするアラーム タスクを作成する必要がありますか?