0

Androidドキュメントが提供しているデモクライアント/サーバーチュートリアル(http://developer.android.com/google/gcm/demo.html)に従いました。私が最初に試したとき、すべてが宣伝どおりに機能しました。サーブレットは最初に「デバイスが登録されていません!」と思いついた。画面が表示されたら、デバイスでデモアプリを起動すると、デモメッセージをデバイスに正常に送信できました。

次に、gcm-demo warをデプロイしたTomcatサーバーをシャットダウンし、デバイス(エミュレーターではないNexus 7)のデモクライアントアプリを閉じました。Tomcatサーバーのバックアップを開始しましたが、期待どおりにgcm-demo warがデプロイされたようですが、サーブレットのURL(元々「デバイスが登録されていません!」と表示されていたURL)にアクセスすると、デバイスはありませんと表示されます。登録済み。デバイスでアプリを開いたところ、デバイスはすでにサーバーに登録されていると表示されます。登録されているデバイスがサーブレットに表示されないのはなぜですか?

助けてくれてありがとう、ありがとう。

4

2 に答える 2

3

私はTomcat/サーブレットのアプローチを自分で採用せず、代わりにApache / PHP / MySQLの方法を選択したので、直接の経験はありませんが、サーバーのDatastore.javaにコメントとして表示されるサンプルコードを読んでいます。

/**
 * Simple implementation of a data store using standard Java collections.
 * <p>
 * This class is thread-safe but not persistent (it will lost the data when the
 * app is restarted) - it is meant just as an example.
 */

したがって、基本的に、Tomcatを再起動すると、regIdが忘れられます。

于 2013-03-25T11:02:14.950 に答える
1

@NickTは正しいです。regIdの永続的なストレージが必要な場合はjava.util.Properties、データをプロパティファイルに保存するでバックアップするか、自分で簡単なファイルストアを作成できます。

キャッシュを削除するか、アプリを再インストールして、クライアントアプリの状態をリセットします。

于 2013-03-25T11:18:32.777 に答える