2013-02-19 59 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類。

希望有人會發現這個有用。

相關問題