首页 文章

Android mapbox:如何取消注册IntentReceiver?

提问于
浏览
2
mapView = (MapView) findViewById(R.id.mapview);
    mapView.onCreate(savedInstanceState);

    mapView.getMapAsync(new OnMapReadyCallback() {
        @Override
        public void onMapReady(MapboxMap mapboxMap) {
            my_function();
        }
    });

在my_function()中我使用此订阅者:

GetDataSubscription = model.getData()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe();

订阅开始时我有这个错误:

java.lang.IllegalStateException:在Scheduler.Worker线程上抛出致命异常 . 在rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62)java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:422)at java.util.concurrent.FutureTask.run(FutureTask.java) :237)在java.util.concurrent.ThreadPoolExecutor的java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 201(ScheduledThreadPoolExecutor.java:152)java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265) .runWorker(ThreadPoolExecutor.java:1112)java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)at java.lang.Thread.run(Thread.java:841)引起:java.lang . NoClassDefFoundError:okhttp3.internal.Tlated okhttp3.logging.HttpLoggingInterceptor $ Logger $ 1.log(HttpLoggingInterceptor.java:112)okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.java:160)okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:92)在okhttp3.internal.http.R ealInterceptorChain.proceed(RealInterceptorChain.java:67)在okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:170)的okhttp3.RealCall.execute(RealCall.java:60)at retrofit2.OkHttpCall.execute(OkHttpCall.java:174)at at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory $ RequestArbiter.request(RxJavaCallAdapterFactory.java:171)at rx.internal.operators.OperatorSubscribeOn $ 1 $ 1 $ 1.request(OperatorSubscribeOn.java:80)at rx.Subscriber.setProducer(Subscriber.java:211) )at rx.internal.operators.OperatorSubscribeOn $ 1 $ 1.setProducer(OperatorSubscribeOn.java:76)at rx.Subscriber.setProducer(Subscriber.java:205)at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory $ CallOnSubscribe.call(RxJavaCallAdapterFactory.java: 152)在rx.Observable $ 2.call(Observable.java:233)的rx.Observable $ 2.call(Observable.java:225)上的retrofit2.adapter.rxjava.RxJavaCallAdapterFactory $ CallOnSubscribe.call(RxJavaCallAdapterFactory.java:138)在rx.internal.opera的rx.Observable.unsafeSubscribe(Observable.java:8741) tors.OperatorSubscribeOn $ 1.call(OperatorSubscribeOn.java:94)at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:422)at at java.util.concurrent.FutureTask.run(FutureTask.java:237)java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 201(ScheduledThreadPoolExecutor.java:152)at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(ScheduledThreadPoolExecutor) .java:265)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)at java.lang.Thread.run( Thread.java:841)

MainActivity泄露了最初在此处注册的IntentReceiver com.mapbox.mapboxsdk.net.ConnectivityReceiver@9d069e70 . 你是否错过了对unregisterReceiver()的调用? android.app.IntentReceiverLeaked:Activity .MainActivity泄露了最初在这里注册的IntentReceiver com.mapbox.mapboxsdk.net.ConnectivityReceiver@9d069e70 . 你是否错过了对unregisterReceiver()的调用?在android.app.LoadedApk $ ReceiverDispatcher . (LoadedApk.java:805)android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:606)android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1430)android.app位于com.mapbox.mapboxsdk.net的android.content.ContextWrapper.registerReceiver(ContextWrapper.java:467)的android.app.ContextImpl.registerReceiver(ContextImpl.java:1404)上的.ContextImpl.registerReceiver(ContextImpl.java:1410) . 位于android.app的info.masterskaya.om.rxjavanetexample.MainActivity.onCreate(MainActivity.java:39)的com.mapbox.mapboxsdk.MapboxAccountManager.start(MapboxAccountManager.java:53)上的ConnectivityReceiver.instance(ConnectivityReceiver.java:35) .Activity.performCreate(Activity.java:5231)在android.app.Anstrumentation.caread.nleCreate(Instrumentation.java:1087)的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)android.app.ActivityThread.handleLaunchActivity的android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) ActivityThread.java:2245)在android.app.ActivityThread.access $ 8 00(ActivityThread.java:135)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)atandroid.os.Handler.dispatchMessage(Handler.java:102)位于android.app.Looper.loop(Looper.java:136)的android.app.ActivityThread.main(ActivityThread.java:5017),位于java.lang.reflect位于com.android的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)的java.lang.reflect.Method.invoke(Method.java:515)中的.Method.invokeNative(Native Method) .internal.os.ZygoteInit.main(ZygoteInit.java:595)at dalvik.system.NativeStart.main(Native Method)

1 回答

相关问题