1

在我的應用程序中,我在任務欄中有一個通知,點擊後會啓動一個新的我的程序的活動視圖。但是,當我嘗試使用停止按鈕在此視圖內停止服務時,什麼也不會發生。我假設當我按通知按鈕時,它沒有保持我的活動與服務鏈接。停止通過通知意圖的服務

當我的應用程序在第一次打開,該服務使用下面的意圖開始:在服務

Intent svc = new Intent(this, StreamService.class); 
startService(svc); 

然後:

//Intent passed when notification is selected. 
Intent notificationIntent = new Intent(this, HomeActivity.class); 

不知道如何回到鏈接到我正在運行的服務?或者在選擇通知時將原始活動/視圖恢復到最前面?

回答

2

您可以附加到通知的意圖應具有服務意圖和特定的操作。在你的服務的onStart方法中,你可以檢查它是一個關閉動作,然後你可以調用stopSelf()。

+1

那麼我想要的行動是打開最後一個視圖。停止服務只是他們可以在該視圖內做的事情。(該服務正在播放音樂)恐怕我仍然不確定如何使用您的建議。停止播放按鈕只是不工作,因爲它不再與服務鏈接。或者我假設。 – Brianjs 2012-03-22 04:51:15

+0

通知 - >啓動活動,活動 - >關閉服務(直接或通過意圖)。 – 2012-03-22 04:54:53

+0

我很抱歉,我有一箇舊的if語句禁用了某些功能。 – Brianjs 2012-03-22 05:12:20

0

如果您從通知中打開的活動是與服務相同的應用程序的一部分,則它可以停止該服務。嘗試使用:

Intent svc = new Intent(this, StreamService.class); 
stopService(svc);