1

由于绑定/取消绑定服务的问题,我阻止了 3 天,我以片段的形式传递了我的旧活动。片段中的绑定服务似乎工作正常但 unbindingservice 崩溃,你能帮我吗?

@Override
    public void onStart() {
        //On attache la vue au service
        getActivity().bindService(
                new Intent(getActivity().getApplicationContext(), GeoLocatingService.class),
                connection, Context.BIND_AUTO_CREATE);
        super.onStart();

    }





    @Override
    public void onStop() {
         //On detache la vue du service
            if(myService!=null){
                getActivity().getApplicationContext().unbindService(connection);
            }

        super.onStop();
    }

错误日志:

09-23 00:39:00.541:E/AndroidRuntime(17970):致命异常:主要 09-23 00:39:00.541:E/AndroidRuntime(17970):java.lang.IllegalArgumentException:服务未注册:com.timo。 geolocalisation.Dashboard_Fragment$3@40557f58 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:891) 09-23 00:39:00.541: E/AndroidRuntime( 17970): 在 android.app.ContextImpl.unbindService(ContextImpl.java:925) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 android.content.ContextWrapper.unbindService(ContextWrapper.java:352) 09 -23 00:39:00.541: E/AndroidRuntime(17970): 在 com.timo.geolocalisation.Dashboard_Fragment.onStop(Dashboard_Fragment.java:220) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 android .support.v4.app.Fragment.performStop(Fragment.java:1651) 09-23 00:39:00。541: E/AndroidRuntime(17970): 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:979) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 android.support.v4 .app.FragmentManagerImpl.detachFragment(FragmentManager.java:1258) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 android.support.v4.app.BackStackRecord.run(BackStackRecord.java:667) 09- 23 00:39:00.541: E/AndroidRuntime(17970): 在 android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 android.os.Handler.handleCallback(Handler.java:587) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 android.os.Handler.dispatchMessage(Handler.java:92) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 android.os.Looper.loop(Looper.java:123) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在android.app.ActivityThread.main(ActivityThread.java:3691) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 java.lang.reflect.Method.invokeNative(Native Method) 09-23 00:39 :00.541: E/AndroidRuntime(17970): at java.lang.reflect.Method.invoke(Method.java:507) 09-23 00:39:00.541: E/AndroidRuntime(17970): at com.android.internal。 os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 09-23 00:39:00.541: E/AndroidRuntime(17970): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 09 -23 00:39:00.541:E/AndroidRuntime(17970):在 dalvik.system.NativeStart.main(本机方法)123) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 android.app.ActivityThread.main(ActivityThread.java:3691) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在java.lang.reflect.Method.invokeNative(Native Method) 09-23 00:39:00.541: E/AndroidRuntime(17970): at java.lang.reflect.Method.invoke(Method.java:507) 09-23 00 :39:00.541: E/AndroidRuntime(17970): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 dalvik.system.NativeStart.main(Native Method)123) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 android.app.ActivityThread.main(ActivityThread.java:3691) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在java.lang.reflect.Method.invokeNative(Native Method) 09-23 00:39:00.541: E/AndroidRuntime(17970): at java.lang.reflect.Method.invoke(Method.java:507) 09-23 00 :39:00.541: E/AndroidRuntime(17970): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 dalvik.system.NativeStart.main(Native Method)reflect.Method.invokeNative(Native Method) 09-23 00:39:00.541: E/AndroidRuntime(17970): at java.lang.reflect.Method.invoke(Method.java:507) 09-23 00:39:00.541 : E/AndroidRuntime(17970): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 com.android。 internal.os.ZygoteInit.main(ZygoteInit.java:605) 09-23 00:39:00.541: E/AndroidRuntime(17970): at dalvik.system.NativeStart.main(Native Method)reflect.Method.invokeNative(Native Method) 09-23 00:39:00.541: E/AndroidRuntime(17970): at java.lang.reflect.Method.invoke(Method.java:507) 09-23 00:39:00.541 : E/AndroidRuntime(17970): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 09-23 00:39:00.541: E/AndroidRuntime(17970): 在 com.android。 internal.os.ZygoteInit.main(ZygoteInit.java:605) 09-23 00:39:00.541: E/AndroidRuntime(17970): at dalvik.system.NativeStart.main(Native Method)main(ZygoteInit.java:605) 09-23 00:39:00.541: E/AndroidRuntime(17970): at dalvik.system.NativeStart.main(Native Method)main(ZygoteInit.java:605) 09-23 00:39:00.541: E/AndroidRuntime(17970): at dalvik.system.NativeStart.main(Native Method)

4

1 回答 1

0

看起来好像在Service三个Fragments 之一中停止了,当您尝试Service在其他两个中停止时,Fragment您会收到此错误。

从Android文档中它说:

请注意,多次调用Context.startService()不嵌套(尽管它们确实会导致多次相应的调用onStartCommand()),因此无论启动多少次服务都将停止一次Context.stopService()或被stopSelf()调用;但是,服务可以使用它们的stopSelf(int)方法来确保在处理启动的意图之前不会停止服务。

因此,请检查其中一个是否Fragment正在停止Service,或者您可以在FragmentActivitys! 中启动和停止服务!如果他们也需要,让Activity处理它并传递对的引用。FragmentsService

于 2013-09-22T23:23:24.037 回答