2013-05-08 43 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