2013-05-08 46 views
0

是否有可能通過服務以編程方式按Android上的後退按鈕?通過服務按Android上的後退按鈕

我知道我可以覆蓋onBackPressed()方法,如果我是一個活動,但是我正在尋找的是在後臺運行的服務有效的解決方案。

回答

1

它不是一個好主意,直​​接讓服務改變UI。您可以從該服務發送廣播。任何在此時開放的活動都可以收聽廣播,然後決定採取適當的行動(在這種情況下關閉應用程序)。您可以模擬活動中的按鍵。

+0

的問題是,我需要的服務,以模擬的背襯,因爲應用程序試圖在特定情況下自動回壓。使用活動是唯一的方法嗎? – vsx06 2013-05-08 00:45:14

+0

你可以嘗試在http://stackoverflow.com/questions/4967178/how-to-generate-key-presses-programmatically-android該解決方案通過n0sferat0k。我還沒有嘗試,我也不會推薦這個。 – 2013-05-08 00:57:26

+0

解決方案是否正常工作? – 2013-05-10 00:32:48

1

是否有可能以編程方式按下Android上的後退按鈕通過服務?

我知道我可以覆蓋onBackPressed()方法,如果我是一個活動,

這已無關「編程按後退按鈕」 。

我正在尋找適用於在後臺運行服務的解決方案。

您服務,歡迎發送郵件至活動引起的活動來調用finish()。您可以使用以下任何這樣的消息:

  • LocalBroadcastManager
  • 事件總線像奧托
  • 定期廣播Intent
  • 一個Messenger

但是,如果您的期望是,您將能夠攻擊ot的活動她的應用程式,迫使他們打電話finish(),這是不可能的。

+0

稱爲SideBar(在Play Store上)的應用程序對返回鍵按下作出反應。這是一個前臺服務,它將視圖添加爲系統覆蓋圖,並在按下後退鍵時刪除視圖。我想知道這是如何完成的。 – Phat7 2013-08-07 05:13:44

+0

@ Phat7:這很好,但它與這個問題無關。隨意打開一個新的問題。 – CommonsWare 2013-08-07 11:25:24

+0

@CommonsWare:你能解釋爲什麼我們無法在服務中執行後退按鈕嗎? – Jame 2016-11-25 03:33:07