我想,並希望這不是老慣了的問題。 這就是我想要的:如何啓動並綁定到服務?
- 啓動與setForeground()設置一個服務S的活性的(即與永久通知服務);
- A綁定到S以公共方法控制它;
- 用戶關閉A(onDestroy),但該服務必須仍在運行;
- 用戶打開A,A發現服務S已經開始並且簡單地重新綁定到它。
我該怎麼做?
我想,並希望這不是老慣了的問題。 這就是我想要的:如何啓動並綁定到服務?
我該怎麼做?
我該怎麼做?
第4步是相同的步驟#1和步驟#2,所以你只是做同樣的事情,在這兩種情況下:通話雙方startService()
和bindService()
。在你的情況下,你的startForeground()
工作onCreate()
服務(而不是onStartCommand()
),因爲你不需要多次(一個startService()
呼叫)。並且務必明確規劃何時您將通過stopService()
或stopSelf()
— only have the service running when it is actively delivering value to the user停止該服務。
是的,我的錯。我刪除了我的意見,以避免您認真閱讀(因爲我現在已經解決),但你已經回答了。無論如何,我錯誤地認爲onBind()方法再次被調用。現在,它的工作,謝謝。 – VanDir
如果您在服務已經運行時調用startService,則什麼都不會發生。服務會自動創建爲單例,因此框架將只處理1個實例。
在您的服務的onCreate()中,請致電startForeground(int id, Notification notif)
。
正如你將它設置爲startForeground,摧毀一個綁定到該服務不會破壞它的活動,所以沒有問題存在。
現在只需綁定到服務在您的活動的onResume,並在onPause或解除綁定的onStop(無論最適合你的,都可以在不同的設置使用)。
您是否閱讀過文檔? http://developer.android.com/guide/components/bound-services.html – FrankMonza