Android Service—在清單中聲明一個服務

來源:互聯網
上載者:User

像Activity(和其他的組件)一樣,所有的服務都必須在應用程式的資訊清單檔中聲明。

要聲明服務就要給<application>元素添加一個<service>子項目,例如:

<manifest ... >
  ...
  <application ... >
      <service android:name=".ExampleService" />
      ...
  </application>
</manifest>

在<service>元素中還包括了一些其他的屬性定義,如啟動服務所需的許可和服務應該運行在哪個進程中。android:name屬性是唯一必須的屬性---它指定了這個服務的類名。一旦你發布了應用,就不應該改變這個名字,因為如果修改了,就會中斷那些使用Intent引用這個服務的功能。

關於在資訊清單檔中聲明服務的更多資訊,請參考<service>元素的說明。

就像Activity一樣,一個服務也能夠定義Intent過濾器,允許其他組件使用隱含的Intent來調用這個服務。通過聲明Intent過濾器,安裝在使用者裝置上的任何應用程式組件都能啟動你的服務(如果你的服務聲明了一個跟另一個應用程式傳遞給startService()方法的Intent匹配的Intent過濾器)。

如果你計劃你的服務只在局部使用(其它的應用程式不使用它),那麼你就不需要提供任何Intent過濾器(並且也不應該提供)。沒有任何Intent過濾器,你就必須使用一個確切的命名服務類的Intent來啟動這個服務。關於啟動服務的更多資訊會在“啟動服務”一節中討論。

另外,如果你在<service>元素中包含了android:exported屬性,並且屬性值設定為“false”,那麼就能確保這個服務是你的應用的私人服務了。即使這個服務支援Intent過濾器,這也是有效。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.