Android アプリケーションにプッシュ通知のフレームワークを正常に実装しましたが、 Class by GoogleGCM
でオーバーライドされた関数について少し混乱しています。GcmIntentService
@Override
protected void onUnregistered(Context context, String registrationId) {
//Do whatever you want
}
このメソッドはいつ呼び出されますか?
Android アプリケーションにプッシュ通知のフレームワークを正常に実装しましたが、 Class by GoogleGCM
でオーバーライドされた関数について少し混乱しています。GcmIntentService
@Override
protected void onUnregistered(Context context, String registrationId) {
//Do whatever you want
}
このメソッドはいつ呼び出されますか?
公式のJavaドキュメントから:
GCM から登録解除するには、次の手順を実行します。
Intent unregIntent = new
Intent("com.google.android.c2dm.intent.UNREGISTER");
unregIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new
Intent(), 0));
startService(unregIntent);
登録リクエストと同様に、このインテントは非同期で送信され、レスポンスは com.google.android.c2dm.intent.REGISTRATION インテントとして送信されます。
使用例の 1 つは、サーバー上の Web サービスを呼び出して、登録済みデバイスのリストからデバイスを削除できるようにすることです。
Android デバイスを GCM から登録解除するには、コードの登録解除する場所に次の行を追加します。
GCMRegistrar.unregister(this);
GCMRegistrar.unregister() メソッドを使用して GCM サーバーから登録解除した後に呼び出されます。
GCMBaseIntentServiceドキュメントでここに記載されているように:
デバイスが登録解除された後に呼び出されます。
デバイスを登録解除する 2 つの方法 (手動と自動) について説明しているため、How Unregistration Worksドキュメントも参照してください。
onUnregistered(Context context, String regId):
アプリがアンインストールされる前に登録を解除できることがわかりました。わかりませんが、それが1つの方法であることを願っています
<activity
android:name=".UninstallIntentActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.DELETE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="package" android:pathPattern="com.testpack.yourapp" />
</intent-filter>
</activity>
そのアクティビティ内で :: を呼び出すことができます
onUnregistered(Context context, String regId):
そのデバイスの登録を解除します。これらのためのより良い方法があるはずです。
Android開発者サイト自体から期待する解決策を得ました実際には、開発者のサイトでのGoogleの説明に従って、アプリケーションがアンインストールされるときに関数が自動的に呼び出されるはずですが、Androidはアンインストールコールバックを提供しないため、このプロセスはすぐには起こりません. 以下のリンクを確認してください。
http://developer.android.com/google/gcm/adv.html#unreg
ご支援いただきありがとうございます。