Android webmethod未调用firebase通知onMessageReceived方法

Android webmethod未调用firebase通知onMessageReceived方法,android,android-asynctask,firebase,firebase-cloud-messaging,Android,Android Asynctask,Firebase,Firebase Cloud Messaging,此代码给出错误: 方法execute必须从当前推断的主线程调用 线程是工作线程 我想你的方法是在服务中 要访问服务中的UI线程(主线程),必须在其中创建处理程序和调用方法,如下所示: public void onMessageReceived(RemoteMessage remoteMessage) { try { String type=remoteMessage.getData().get("type"); if(type.equals("1001

此代码给出错误:

方法execute必须从当前推断的主线程调用 线程是工作线程


我想你的方法是在服务中

要访问服务中的UI线程(主线程),必须在其中创建处理程序和调用方法,如下所示:

public void onMessageReceived(RemoteMessage remoteMessage) {

    try {

        String type=remoteMessage.getData().get("type");
        if(type.equals("1001")) {
            CommonClass common = new CommonClass(getApplication());
            CommonClass.MyTaskSendLog.execute(getApplicationContext(), DeviceDetails,lines);
        }            
    } catch (Exception ex) {
    }
}

您可以在服务的
onCreate
中创建处理程序。

如何在onMessageReceived()方法上调用该处理程序。用我的代码替换if(type.equals(“1001”){…}中的代码我在AsyncTask中遇到了类似的问题,但奇怪的是,如果要执行的调用只是在另一个方法中,它不会显示错误(从onMessageReceived调用)。这肯定是同一个线程吗?
if(type.equals("1001")) {
    Handler handler = new Handler(Looper.getMainLooper());
    handler.post(new Runnable() {
                  public void run() {
                          CommonClass common = new CommonClass(getApplication());
                          CommonClass.MyTaskSendLog.execute(getApplicationContext(), DeviceDetails,lines);
                  }
    });
}