2012-05-17 22 views
0

我有一個廣播接收器,工作正常,但現在我想發送通知發送到狀態欄。由於BroadcastReceiver無法直接執行它,看起來我需要創建一個服務來爲我做到這一點正確嗎?正確的方式來啓動和接口的服務和狀態欄/通知

所以我使用提供在http://developer.android.com/reference/android/app/Service.html

除了一些小的調整它的代碼示例創建了服務。我使用 context.startService(新的Intent(context,AlertUser.class))從廣播接收器開始服務;

發生了什麼事是它在狀態欄中發出了消息。然後當我做了一個清晰的,並讓它產生一個新的味精服務代碼沒有執行。我開始以不同的方式與他服務互動嗎?從我讀到否,如果是同一過程的一部分。

此外,我將如何從BroadcastReceiver共享信息,如從BroadcastReceiver到服務,以便它是通知中顯示的信息?

感謝,

弗蘭克

回答

0

由於廣播接收器不能做到這一點直接,它看起來像我需要創建一個服務,爲我做的是否正確?

A BroadcastReceiver可以顯示Notification

一旦開始,我與他的服務有什麼不同?

不是。如果您通過startService()向服務發送命令,那麼這些命令將在onStartCommand()中收到。

我該如何將信息從BroadcastReceiver共享到服務,以便它在通知中顯示信息?

它傳遞一個額外的Intent傳遞給startService(),並在onStartCommand()檢索出Intent的。

+0

來自http://developer.android.com/guide/topics/ui/notifiers/notifications.html表示「活動或服務可以啓動狀態欄通知」,導致我無法接受BroadcastReceiver無法執行該操作。我對開發和開發相當陌生,我如何通過我發送的意圖向服務發送命令? – captfrank

+0

我認爲杜哈是爲了我,哈哈,我應該做這樣的事情是正確的?
\t \t Intent servIntent = new Intent(context,AlertUser.class);
\t \t servIntent.putExtra(「AlertMsg」,ac.toString()+「Security Alert」);
\t \t //開始一項服務,通過狀態欄向用戶發送通知 \t \t context.startService(servIntent);
然後在服務呢?
alertMsg = intent.getStringExtra(「AlertMsg」); – captfrank

+0

Commonsware再次感謝所有的幫助! – captfrank

相關問題