Я пытаюсь реализовать метод Asynctask
с комбинацией GCM
JSONObject
в подклассе. У меня возникают проблемы с применением условия GCM в методе doinBackground
.doInBackground метод должен возвращать результат типа JSONObject
Ниже титры из doInBackground method
protected JSONObject doInBackground(String... args) {
GCMRegistrar.checkDevice(context);
GCMRegistrar.checkManifest(context);
final String regId = GCMRegistrar.getRegistrationId(context);
if (regId.equals("")) {
GCMRegistrar.register(context,SENDER_ID);
}else {
if (GCMRegistrar.isRegisteredOnServer(context)) {
Toast.makeText(getApplicationContext(), "Already registered with GCM", Toast.LENGTH_LONG).show();
} else {
UserFunctions userFunction = new UserFunctions();
JSONObject json =userFunction.registerUser(context,fname, lname, email, password,regId);
return json;
}
}
}
Мой IDE оленья кожа позволяют ему быть выполнена. Это сообщение об ошибке, которое оно дает.
Этот метод должен возвращать результат типа JSONObject
Теперь, когда возвращаемое значение берется из условий вышеуказанных код работают правильно, однако возвращаемое значение предположит, будет выполняться только тогда, когда условия верны.
UPDATE
Существует еще одна проблема с этим. json
всегда возвращает null в методе doInBackground, потому что, когда регистрация GCM зарегистрирована, регистратор GCM регистрирует его. Как только он регистрируется, служба регистрации GCM берет на себя регистрацию сервера, это означает, что json
в doInBackground отправит нулевое значение в onPostExecute method
.
Я также проверяю на успех и проверку в методе onPostExecute. После проверки для validaton сообщение отправляется в пользовательский интерфейс.
Если json
отправить пустое значение метода onPostExecute
я не могу делать какие-либо проверки и размещения сообщения в интерфейсе
Пожалуйста, есть способ обойти это сделать метод выше работы, я бы признателен, если кто-то может помочь. Благодарю.
метод должен возвращать значение в любых условиях. Вы должны хотя бы вернуть нулевое значение в конце метода. – shhp
Вы должны положить 'return null' в последнюю строку или внутри if (...) – BNK
Для вашего обновления: IMO, вы можете обратиться к [мой ответ здесь] (http://stackoverflow.com/questions/32299997/how-to-implement-a-gcm-hello-world-for-android-using- андроид-студия) – BNK