【问题标题】:Is it somehow possible to send Activity onPause() progragmatically? [closed]是否有可能以编程方式发送 Activity onPause() ? [关闭]
【发布时间】:2013-05-22 18:05:09
【问题描述】:

我已经完成了我的研究。 这似乎不可能。

我需要我的 Activity 以编程方式从 onResume() 进入 onPause(),单击一个按钮并以某种方式 onPause(), 不使用 onKeyDown()...

我知道,可能不可能...也许有人对此进行了一些调整, 也可能不是。

还是谢谢你

【问题讨论】:

  • 如果您的Activity 仍在显示,为什么还要致电onPause()?如果您解释您的意图,也许我们可以帮助您找到更好的方法来实现您的目标
  • 关键是 onPause() 通常会发生,因为其他东西正在接管用户交互。所以让 onPause() 发生的方法是使用一个 Intent 来代替你想要发生的任何事情。
  • 一个透明活动的意图......但是如果你希望当前活动保持可见,为什么要暂停它?
  • 我担心的是,听起来您只是希望您的应用程序在用户盯着静态屏幕时不做任何事情......这可能不是一个好主意。正如我所说,如果你解释得更好一点,我相信有更好的方法来做你需要的事情。甚至是进度对话框之类的东西,这样用户就不会认为/感觉您的应用被冻结了
  • 这是一个糟糕的锁屏方法!用户只需点击 home、recents 或 back 键,就可以将你愚蠢的应用程序抛在脑后。

标签: android onpause activity-lifecycle


【解决方案1】:

您无法从 Activity 的代码中“暂停”它。 您可以通过调用来关闭它

finish()

或者启动一个新的 Activity,它将占据前台 - 然后你会让它暂停,但这不是你想要的。

我自己从未做过锁屏。确实没有太多信息,Android 没有设计为具有第三方锁屏 apk 的,所以如果可能的话,它可能会变得非常棘手。

我怀疑你要做的是调用一个启动器来隐藏你的活动,你可以试试这个

Launching default android launcher programmatically

如果它不起作用,您可以通过该问题答案中提供的链接查看代码。祝你好运!

https://stackoverflow.com/questions/10864300/create-a-lock-screen-of-my-own

【讨论】:

    【解决方案2】:

    Activity 的 onPause() 方法由 UIThread 管理,UIThread 是您应用程序的主线程。所以你不能以编程方式调用它。如果要调用 onPause() 方法,则需要在当前 Activity 之上调用另一个 Activity。

    【讨论】:

    • 非常感谢!你认为这可能是 Chris 建议的“透明”活动吗?
    • 是的,但您不能阻止用户离开/卸载该活动。
    • @ChrisStratton 当然你是对的!
    猜你喜欢
    • 2014-06-29
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 2015-07-09
    • 2015-03-11
    • 1970-01-01
    相关资源
    最近更新 更多