繁体   English   中英

如果用户卸载应用程序,如何从数据库中删除GCMRegistered设备ID

[英]how to delete GCMRegistered device id from database if user Uninstall application

public class GCMIntentService extends GCMBaseIntentService {

    NotificationManager mNotificationManager;
    Context cc;

    @Override
    protected void onRegistered(Context context, String regId) {
        Intent intent = new Intent(Constants1.ACTION_ON_REGISTERED);
        intent.putExtra(Constants1.FIELD_REGISTRATION_ID, regId);
        context.sendBroadcast(intent);
    }

    @Override
    protected void onUnregistered(Context context, String regId) {
        Log.i(Constants1.TAG, "onUnregistered: " + regId);
        AlertDialog.Builder alert = new AlertDialog.Builder(
                getApplicationContext());

        alert.show();

    }

    @Override
    protected void onMessage(Context context, Intent intent) {

        /**
         * You can get the Extras from TaxMann server
         * 
         * Bundle _bundle = intent.getExtras();
         */

        String msg = intent.getStringExtra("payload");
        mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        BackgroundAlert bg = new BackgroundAlert(mNotificationManager, msg);
        bg.onReceive(getApplicationContext(), intent);
    }

    @Override
    protected void onError(Context context, String errorId) {

    }
}

这是我对gcm的代码,当我向所有注册设备ID发送通知时,我的数据库中大约有15000个registered_device_id用于通知,然后显示10000成功和6000不成功。我想从我们的数据库中删除所有6000注册的设备ID,以便得到通知的时间更少。

您无需在android代码中执行任何操作。 GCM足够聪明来处理它。 因此,一旦我们的应用程序被卸载,GCM将负责从GCM中删除该注册ID。 但是,我们必须从服务器数据库中删除该注册ID,一旦收到GCM的响应“ NotRegistered”,就必须从数据库中删除该特定注册ID。

以下是事件的顺序。

  1. 最终用户将卸载该应用程序。
  2. 第三方服务器向GCM服务器发送一条消息。
  3. GCM服务器将消息发送到设备。
  4. GCM客户端接收到该消息,并向程序包管理器查询是否有配置为接收该消息的广播接收器,该接收器返回false。
  5. GCM客户端通知GCM服务器该应用程序已卸载。
  6. GCM服务器将注册ID标记为删除。
  7. 第三方服务器向GCM发送一条消息。
  8. GCM向第三方服务器返回一条NotRegistered错误消息。一旦收到GCM的此类回应,我们就必须从数据库中删除该特定注册ID。

跟随该链接可能对您有用

Google Cloud Messaging注册ID到期

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM