0

標題相當自我解釋。我想創建一個始終運行的android應用程序,當方向改變時它會顯示一個對話框。我正在尋找一些信息,我認爲我必須使用服務,但我不確定如何,哪一個以及爲什麼。我甚至不確定這是否正確。背景正在運行的應用程序,當方向更改時顯示對話框

因此,總結一下: 一個總是(即使它已關閉)的android應用程序檢測到方向變化,然後顯示一個對話框。

任何幫助將是很好的。我現在真的迷失了。

+0

請問你在用什麼?我有點困惑,因爲我試圖弄清楚你什麼時候需要/需要那 – Yorrd 2014-09-26 13:48:33

+0

是的。我正在做一個應用程序,每當你改變方向時,問你是否真的想要交換它;作爲自定義可拖動的對話框。 – sospedra 2014-09-26 15:54:20

回答

1

我想你將不得不實施一項服務,並在該服務中註冊BroadcastListener,以動作ACTION_CONFIGURATION_CHANGED收聽廣播。 Receiver的onReceive()方法將在當前配置中調用一次,如方向,更改。然後,您可以打開您需要從該服務中打開的任何內容,並將其帶到前臺。

我會留下你的細節,這裏有太多需要解釋。請閱讀ServiceBroadcastListener。我自己也沒有測試過這個,但是在概念上我相信這是做到這一點的方法。

+0

首先,非常感謝@yorrd現在我認爲它更清潔一些。我閱讀了所有通過我和更多的信息,並且有一個關鍵問題:我應該使用哪種服務?我的意思是,一個普通的'服務'(進入主線程),一個新的'線程',一個'intentService',一個'前臺''服務'或者'綁定''服務'。我首先考慮的是前臺服務,但後來我發現我必須創建一個正在進行的通知,這與我的想法相去甚遠。任何幫助將如此偉大,再次感謝。 – sospedra 2014-09-26 11:21:13

+0

不客氣!意向服務處理您提供給它的意圖 - 不是您想要的。綁定服務被綁定到一個活動 - 而不是你想要的。這給我們留下了普通的舊常規服務和前臺服務。這裏的區別實際上只是前臺服務很難不被殺死(也是Google的持久標誌,如果你的目標是保持它的運行,無論如何都要保持服務的活躍)。 – Yorrd 2014-09-26 13:55:53

+1

如果您使用前臺服務(需要通知)或正常服務取決於您。一個正常的服務DOES在主線程上運行,但是,這不會阻止你在服務中創建一個新的線程。所以最後,我會使用一個正常的服務。在我看來,你甚至不需要做一個新線程,因爲你沒有在那裏做任何工作,只是在傾聽,然後是一個小小的命令來打開一些東西。 – Yorrd 2014-09-26 13:56:10

相關問題