2012-02-22 41 views
3

我知道如何實現通知新的呼出正在啓動BroadcastReceiver。 我也知道如何最終放棄呼叫並在應用程序中處理它。註冊android.intent.action.NEW_OUTGOING_CALL的廣播接收器並詢問用戶該做什麼?

我想知道的是,如果它是可靠的,以詢問用戶是否放棄它呢? 據我所知,該應用程序只有有限的時間從RroadcastReceiver返回。 這段時間有多久?

你有沒有實現呢?

編輯

試圖實現它,我認識到,有一個更大的問題。在BroadcastReceiver中,您無法顯示對話框。形成文檔:

特別是,您不能在BroadcastReceiver中顯示對話框或綁定到來自 的服務。對於前者,您應改爲使用NotificationManager API 。對於後者,您可以使用 Context.startService()向服務發送命令。

原因是你不能執行AsyncTask。我以爲我會使用信號來實現它,而是因爲廣播接收器在主線程開始,你不能做到這一點,你不能讓它等待...

這是正確的?

回答

0

據我所知,應用程序從BroadcastReceiver返回的時間有限。這段時間有多久?

形式上這時間是約5秒 - 5秒後。而系統主線程無法處理系統消息,Android應該拋出ANR(應用程序未響應)對話框並強制關閉您的應用程序。更通用 - BroadcastReceiver onReceive()方法應該儘快完成。

如果你想展示一些UI elemets給用戶,我想你應該開始爲目的自己Activity