Android Gcm注销
我正在安卓系统中开发GCM。 通过使用以下异步注册设备的代码,我完成了设备与GCM的注册Android Gcm注销,android,asynchronous,google-cloud-messaging,Android,Asynchronous,Google Cloud Messaging,我正在安卓系统中开发GCM。 通过使用以下异步注册设备的代码,我完成了设备与GCM的注册 private void registerInBackground() { new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... params) { String msg = ""
private void registerInBackground() {
new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... params) {
String msg = "";
try {
if (gcm == null) {
gcm = GoogleCloudMessaging.getInstance(context);
}
regid = gcm.register(SENDER_ID);
msg = "Device registered, registration ID=" + regid;
storeRegistrationId(context, regid);
msg="Registration success. Regid: "+regid;
} catch (IOException ex) {
msg = "Error :" + ex.getMessage();
// If there is an error, don't just keep trying to register.
// Require the user to click a button again, or perform
// exponential back-off.
}
return msg;
}
@Override
protected void onPostExecute(String msg) {
Log.e("GCM", msg);
}
}.execute(null, null, null);
}
注册活动中的unregisterInBackground功能如下:
protected void unregisterInBackground() {
new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... params) {
String msg = "";
try {
if (gcm == null) {
gcm = GoogleCloudMessaging.getInstance(context);
}
gcm.unregister();
msg = "Device unregistered, registration ID=" + regid;
// delete the regID
deleteRegistrationId(context, regid);
} catch (IOException ex) {
msg = "Error :" + ex.getMessage();
}
return msg;
}
@Override
protected void onPostExecute(String msg) {
Log.e("unregistration", msg);
}
}.execute(null, null, null);
}
protectedvoid unregisterInBackground()受保护{
新建异步任务(){
@凌驾
受保护字符串doInBackground(无效…参数){
字符串msg=“”;
试一试{
如果(gcm==null){
gcm=GoogleCloudMessaging.getInstance(上下文);
}
gcm.unregister();
msg=“设备未注册,注册ID=“+regid;
//删除注册表项
deleteRegistrationId(上下文,regid);
}捕获(IOEX异常){
msg=“错误:”+ex.getMessage();
}
返回味精;
}
@凌驾
受保护的void onPostExecute(字符串msg){
Log.e(“注销”,msg);
}
}.执行(空,空,空);
}
需要你的帮助!!提前谢谢 unregister()
也在阻塞,就像register()
一样。因此,您确实需要在后台线程中运行它,就像在异步任务中运行一样
您可以在GCM实例上调用它,因此我认为只要您有GCM
实例,就可以在任何活动中调用它
您可能希望在实现注销功能之前阅读
protected void unregisterInBackground() {
new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... params) {
String msg = "";
try {
if (gcm == null) {
gcm = GoogleCloudMessaging.getInstance(context);
}
gcm.unregister();
msg = "Device unregistered, registration ID=" + regid;
// delete the regID
deleteRegistrationId(context, regid);
} catch (IOException ex) {
msg = "Error :" + ex.getMessage();
}
return msg;
}
@Override
protected void onPostExecute(String msg) {
Log.e("unregistration", msg);
}
}.execute(null, null, null);
}