2011-05-04 50 views
0

所以我有一個類監聽來電,即使我不在應用程序的用戶界面中,我也想爲所有應用程序提供服務來接聽電話。 如何觸發這個類(廣播接收器)。我使用「sendBroadcast」並擁有一個FC。如何在這種情況下提供服務?

sendBroadcast(new Intent(context, IncomingCallReceiver.class)); 

謝謝您的幫助。

+0

不敢肯定,但我認爲廣播接收器接收,即使你的應用程序被關閉的事件... – Farhan 2011-05-04 11:31:03

+0

@Farhan:沒有,我驗證它現在和它不工作。任何想法如何解決這個問題? – androniennn 2011-05-04 11:39:30

+0

是廣播接收器接收事件,即使您已關閉您的應用程序。 – Sujit 2011-05-04 11:49:42

回答

1

在你的情況我會用下面的辦法:

  • 創建Service並從Activity啓動它(你提到你有幾個應用程序,所以開始他們的第一個也可能啓動服務)。
  • 確保服務不會永久工作,因此在不再需要服務時停止服務(最後的應用程序已完成)。通過撥打stopSelf()即使沒有活動,服務也可能終止自己。請注意,系統也可能終止您的服務並阻止其永久運行。
  • 在Service中創建私有類,用於擴展BroadcastReceiver並將其註冊爲要使用服務功能registerReceiver()監控的意圖。
  • 一旦您收到想要的意圖,您可以從BroadcastReceiver onReceive()中調用某些服務功能。例如,您可以使用您的應用程序識別的一些自定義Intent來發送Broadcast()。
  • 當服務停止時,請確保您使用服務功能unregisterReceiver()取消註冊BroadcastReceiver擴展。

UPDATE:示出活動的BroadcastReceiver內延伸用法

+0

你有沒有討論關於這個步驟的指導鏈接?謝謝。 – androniennn 2011-05-04 18:12:21

+0

@androniennn - 我會在明天早上用一些有用的鏈接/例子更新我的答案。 – Zelimir 2011-05-04 20:47:01