2013-02-19 61 views
1

在用户登录后,在我的片段中调用onActivityResult回调函数。我有登录onActivityResult,它实际上被调用,但服务没有启动...该服务注册在清单中,它在我的onResume罚款执行。 getActivity也不返回NULL。我不知道这个问题是什么......任何人都可以提供一些建议。为什么我的服务没有在Fragments onActivityResult中启动?

@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; 
     } 
    } 
+0

您需要更多的打印输出,将一个放在case后面,然后放在if后面。 – 2013-02-19 21:12:43

+0

您的服务中是否有日志,以确认是否已启动? – 2013-02-19 21:19:47

回答

0

很可能您没有在清单中为您的服务注册适当的标签。

要验证这一点,请查看startService返回的ComponentName对象。如果它为空,则没有服务符合您的意图。

+0

如果有一个名为MyService的IntentService类,那么“no service is matching your itent”是什么意思? – Ewoks 2013-04-24 10:56:13

+0

如果您的服务没有在AndroidManifest.xml中注册,那么Android将无法将您的意图与您的服务相匹配来启动它。当您按名称定位您的服务时(甚至是这样做),情况更是如此。 – 2013-04-24 14:20:14

-1

我想你没有申报,你的活动名称在Android清单 在android系统menifest.xml文件中声明活动名称写下面的代码这样

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

我有类似的问题。

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

如果您未注册应用程序将崩溃。除非您使用的是IntentService,这是默认情况下在另一个线程中,所以它不会崩溃您的应用程序,但服务本身将.. ..只是我们不能注意到它,导致主要活动的用户界面将保持..

最后我有清单中的错字宣告我的IntentService类。

希望有人会发现这个有用。

相关问题