为什么我的服务没有在Fragments onActivityResult中启动?

时间:2013-02-19 21:10:11

标签: android

在用户登录后的片段中,调用onActivityResult回调。我已经登录了onActivityResult,它实际上被调用了,但服务没有启动...服务在Manifest中注册,它在我的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;
        }
    }

3 个答案:

答案 0 :(得分:1)

我有类似的问题。

正如@Justin在回复中指出的那样,问题可能是在清单文件中正确注册服务。

如果你没有注册app会崩溃。除非您使用的是 IntentService ,默认情况下这是另一个线程,因此它不会使您的应用程序崩溃,但服务本身也会崩溃..这只是我们无法注意到它,导致主要活动UI将留下..

最后,我在清单中输入错误声明我的IntentService类..

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

答案 1 :(得分:0)

很可能您的服务清单中没有注册正确的标签。

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

答案 2 :(得分:-1)

我认为你没有在android清单中声明你的活动名称 声明活动名称在android manifest.xml文件中写下代码,如下所示

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