Android - 推送器 - eventQueue 错误

Android - Pusher - eventQueue Error

为什么会出现该错误?如何将此 method/class 中的信息传递给我的另一个 class?推送器 class/code 正确获取数据并正确显示,但是当我尝试从另一个 class 访问其他方法时,它给我以下错误。有任何想法吗? 这是我的推送代码 class Handler_Pusher:

privatechannel.bind("event", new PrivateChannelEventListener() {
            @Override
            public void onEvent(final String channelName, final String eventName, final String data) {
                Log.v(TAG, "Private Test onEvent: " + channelName + "  " + eventName + "  " + data);
                docSyncData = getDocumentUrlExtension(data);
                final String URL = DOCUMENT_URL_PREFIX + docSyncData + ".pdf";
                Log.v(TAG, "URL:::" + URL);
                Activity_InCall.dialogLaunch(URL);
            }

            @Override
            public void onSubscriptionSucceeded(String channelName) {
                Log.v(TAG, "Private Channel onSubscriptionSucceeded: " + channelName);
            }

            @Override
            public void onAuthenticationFailure(String message, Exception e) {
                Log.v(TAG, "Private Channel onAuthenticationFailure: " + message + ":::" + e);
            }
        });

这是我试图在 class Activity_InCall:

中调用的方法
public static void dialogLaunch(String data){
        Log.v(TAG, "Pusher:::" + data);
        Intent activityDocSync = new Intent(context, Activity_DocSync.class);
        context.startActivity(activityDocSync);
    }

这是我看到的 logcat 错误,URL 正常,但随后给了我 "eventQueue" 错误,然后进入空指针异常:

11-23 09:58:12.551 19108-19771/com.talkative.reach V/InCallActivity: Pusher:::URL
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: FATAL EXCEPTION: pusher-java-client eventQueue
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: Process: com.talkative.reach, PID: 19108
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime:     at android.content.ComponentName.<init>(ComponentName.java:77)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime:     at android.content.Intent.<init>(Intent.java:4160)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime:     at com.talkative.reach.Activity_InCall.dialogLaunch(Activity_InCall.java:398)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime:     at com.talkative.reach.Handler_PusherPrivate.onEvent(Handler_PusherPrivate.java:90)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime:     at com.pusher.client.channel.impl.ChannelImpl.run(ChannelImpl.java:100)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime:     at java.lang.Thread.run(Thread.java:818)

eventQueue 是发生异常的线程。

从堆栈跟踪来看,"user land" 代码的最后一段是 com.talkative.reach.Activity_InCall.dialogLaunch(Activity_InCall.java:398)

我要解决的几个问题是:

  1. dialogLaunch 中的 context 是静态可访问对象吗?
  2. 应该在 UI 线程而不是 eventQueue 库线程上访问它吗?参见 runOnUiThread