当前位置: 首页 > 知识库问答 >
问题:

在GCMBaseIntentService中从未调用onPostExecute

储毅
2023-03-14

我有GCMinentService,以便将GCM消息传递到我的应用程序。在我的其他应用程序项目中,同样的代码也可以正常工作,但在这个新项目中,设备注册正确,我得到了注册,等等。。。在这个类中,我想向当前登录的用户注册de设备令牌,为此,我使用AsyncTask使用Ksoap2调用我的Web服务。

调用到webServices的方法工作正常,但onPostExecute从未被调用,但是doInBackground返回字符串值,我使用该值来了解该方法是否正常工作或是否出现任何服务器错误。。。

几个小时后,我认为问题不在于方法,我执行的任何异步任务都会出现这种行为,如下所示:

    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();
}

当我调用注册服务器从注册无效返回"hola"是在调试视图中运行,但从来没有在PostExecute...

有人知道问题出在哪里?

提前感谢

共有1个答案

古起运
2023-03-14

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

这个问题在这个链接中解释。为此,解决方案是在IntentService之外使用AsyncWG。

 类似资料:
  • 我试图在项目文件夹中运行,但每次都出现此错误,显示从未调用过

  • 问题内容: 我有以下代码: 从不调用completionHandler函数。我尝试在浏览器中调用该URL,但工作正常。我尝试使用另一个URL,但仍然无法正常工作。我检查了一下我的ios模拟器是否可以连接到Internet,确实可以。 我不知道为什么不调用该函数,并且由于我没有任何错误,因此很难调试。 问题答案: 该任务永远不会完成,因为它永远不会开始。您必须使用其方法手动启动数据任务。

  • 我的从未被调用,即使我在inapp对话框中单击立即购买,logcat也不会打印任何内容。

  • 我正在将FireBase推送通知集成到我的应用程序中。虽然我收到推送通知(当应用程序在后台时),但我的onMessageRec的(远程消息远程消息)从来没有被调用,无论应用程序是在前台还是后台。如果这是FCM的问题,或者我做错了什么。我在我的应用程序中使用com.google.firebase: Firebase消息传递: 9.0.0build.gradle.我已经在我的应用程序清单中声明了这两个

  • 问题内容: 我有一个简单的程序,其中显示了一些项目的列表,单击其中的一个后,单击的项目将传递回附件。当用户取消对话框时,我还想执行一些默认处理(使用 后退按钮 )-更具体地说,在这种情况下,我想向活动传递一个空字符串。 但是,如果将对话框放在(来自 兼容性包 )中, 则使用后退按钮关闭对话框时不会调用 。我究竟做错了什么? 问题答案: 这可能与您的代码中没有显式调用的事实有关。该OnCancelL