Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么我的服务没有在ActivityResult的片段中启动?_Android - Fatal编程技术网

Android 为什么我的服务没有在ActivityResult的片段中启动?

Android 为什么我的服务没有在ActivityResult的片段中启动?,android,Android,在我的片段中,用户在onActivityResult回调中签名后被调用。我已登录onActivityResult,它实际上正在被调用,但服务未启动。。。该服务在清单中注册,并在我的onResume中执行。getActivity也没有返回NULL。我不知道问题是什么。。。谁能给点建议吗 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.on

在我的片段中,用户在onActivityResult回调中签名后被调用。我已登录onActivityResult,它实际上正在被调用,但服务未启动。。。该服务在清单中注册,并在我的onResume中执行。getActivity也没有返回NULL。我不知道问题是什么。。。谁能给点建议吗

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
        case REQUEST_1:
            if (resultCode == Activity.RESULT_OK) {
                Intent intent = new Intent(getActivity(), MyService.class);
                intent.setData(Uri.parse("http://www.google.com");
                getActivity().startService(intent);
            }
            break;
        default:

            super.onActivityResult(requestCode, resultCode, data);
            break;
        }
    }

很可能您没有在清单中为您的服务注册正确的标记


要验证这一点,请查看从
startService
返回的
ComponentName
对象。如果为null,则没有与您的意图匹配的服务

我认为您没有在android清单中声明活动名称 要声明活动名称,请在android menifest.xml文件中编写以下代码,如下所示

<activity 
        android:name=".YourActivityName">   
</activity>

我也有类似的问题

正如@Justin在回复我时指出的,这个问题可以在清单文件中正确注册服务

若你们不注册,应用程序将崩溃。除非您使用的是IntentService,默认情况下,它位于另一个线程中,因此不会使您的应用程序崩溃,但服务本身会崩溃。。只是我们没有注意到它,因为主活动UI将保留

最后,我在声明我的IntentService类的清单中输入了错别字


希望有人会觉得这很有用。

您需要更多打印输出,在案例之后再打印一份,然后在if之后。您的服务中是否有日志,以确认是否已启动?什么是“没有服务与您的itent匹配”的意思如果有一个名为MyService?的IntentService类,如果您的服务未在AndroidManifest.xml中注册,则Android将无法将您的意图与您的服务匹配以启动它。甚至当您按名称(这就是您所做的)定位服务时,情况也是如此。