0

我有 GCMIntentService 以便将 GCM 消息传递到我的应用程序。我的其他应用程序项目中的相同代码工作正常,但在这个新项目中,设备正在正确注册,我得到 regId 等......在这个类中,我想向当前登录的用户注册设备令牌,用于我使用 AsyncTask 用 Ksoap2 调用我的 webService。

调用到 webServices 的方法工作正常,但永远不会调用 onPostExecute 但是 doInBackground 返回字符串值,我用它来知道该方法是否正常工作或我收到任何服务器错误...

几个小时后,我认为问题不在于方法,这种行为发生在我执行的任何 AsyncTask 中,如下所示:

    private void registroServidor()
{
    url = getUrl();     
    class preprueba extends AsyncTask<String, Void, String> {
        @Override
         protected String doInBackground(String... urls) {
             return "hola";
         }

         protected void onPostExecute(String result) {
             // set image for ImageView
            String hola = "hola";
            Log.i(hola,hola);
         }
     }
    preprueba pp = new preprueba();
    pp.execute();
}

当我从 onRegistered void 调用 registroServidor 时,返回“hola”在调试视图中运行,但从不执行 onPostExecute ...

有人知道是什么问题吗?

提前致谢

4

1 回答 1

0

正如我在上一条评论中所说,问题是在 Android 2.3(API 10 或更低版本)中,当您在 GCMBaseIntentService 等 IntentService 中使用时,AsyncTask 无法正常工作。

此问题在此链接中进行了说明。为此,解决方案是使用 IntentService 之外的 AsyncTask。

于 2013-08-29T16:09:59.083 回答