webmethod不会调用firebase通知onMessageReceived方法

时间:2016-07-19 09:09:51

标签: android android-asynctask firebase firebase-cloud-messaging

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) {
    }
}

此代码出错:

  

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

1 个答案:

答案 0 :(得分:2)

我想你的方法是在服务中。

要访问服务中的UI线程(主线程),您必须创建一个处理程序并在其中调用方法:

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

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