Я пытаюсь отменить регистрацию GCM
при выходе пользователя из системы. Для этого я использую следующий код.Невозможно отменить регистрацию GCM в Android
public void logout(){
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(NewSettings.this);
try {
gcm.unregister();
} catch (IOException e) {
e.printStackTrace();
e.toString();
Toast.makeText(NewSettings.this,"Problem in logout, try again later!",Toast.LENGTH_LONG).show();
}
}
Это не разрегистрировать GCM как я получаю исключение в logcat
, который, как этот
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ java.io.IOException: MAIN_THREAD
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ at com.google.android.gms.gcm.GoogleCloudMessaging.unregister(Unknown Source)
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ at com.artqueen.aahaan.Activities.NewSettings.logout(NewSettings.java:157)
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ at com.artqueen.aahaan.Activities.NewSettings$7.onClick(NewSettings.java:120)
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ at android.view.View.performClick(View.java:5254)
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ at android.view.View$PerformClick.run(View.java:21173)
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ at android.os.Handler.handleCallback(Handler.java:739)
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:95)
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ at android.os.Looper.loop(Looper.java:145)
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:6837)
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ at java.lang.reflect.Method.invoke(Native Method)
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:372)
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
07-14 10:54:20.718 26537-26537/com.artqueen.aahaan W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Документация упоминает, что
Я также попытался использовать это
public void logout(){
InstanceID instanceID = InstanceID.getInstance(NewSettings.this);
try {
instanceID.deleteInstanceID();
} catch (IOException e) {
e.printStackTrace();
e.toString();
Toast.makeText(NewSettings.this,"Problem in logout, try again later!",Toast.LENGTH_LONG).show();
}
}
и я все еще получаю это в logcat
07-14 11:02:03.228 31682-31682/com.artqueen.aahaan W/System.err﹕ java.io.IOException: MAIN_THREAD
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at com.google.android.gms.iid.InstanceID.zzb(Unknown Source)
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at com.google.android.gms.iid.InstanceID.deleteInstanceID(Unknown Source)
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at com.artqueen.aahaan.Activities.NewSettings.logout(NewSettings.java:158)
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at com.artqueen.aahaan.Activities.NewSettings$7.onClick(NewSettings.java:121)
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at android.view.View.performClick(View.java:5254)
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at android.view.View$PerformClick.run(View.java:21173)
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at android.os.Handler.handleCallback(Handler.java:739)
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:95)
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at android.os.Looper.loop(Looper.java:145)
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:6837)
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at java.lang.reflect.Method.invoke(Native Method)
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:372)
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
07-14 11:02:03.238 31682-31682/com.artqueen.aahaan W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Могу ли я отмены регистрации GCM
в правильном пути? Пожалуйста, дайте мне знать, как я могу это достичь. Заранее спасибо.
Вы можете запустить 'unregister' в' AsyncTask', см. [This] (http://stackoverflow.com/questions/17721541/new-gcm-api-register-unknown-source-error) – calvinfly
Работа прекрасна. Спасибо –