gpt4 book ai didi

android - 从不从广播接收器开始 Activity ?

转载 作者:行者123 更新时间:2023-11-29 00:19:29 30 4
gpt4 key购买 nike

android初学者,所以请多多包涵...

根据文档,您永远不应该从广播接收器启动 Activity :

“(...)永远不要启动 Activity 来响应传入的广播 Intent。”

http://developer.android.com/training/run-background-service/report-status.html

(文档的最后一行)。

所以,这是我的问题:既然我需要从后台服务显示 Activity 选择器,而且我永远不应该从广播接收器启动 Activity ,那么我该如何解决我的问题?

最佳答案

您的具体情况需要进一步说明。你究竟想做什么?

同时,这里有背景说明,可以帮助您了解何时应用此规则,以及您是否应该在您的应用中违反它。


"(...)Never start an Activity in response to an incoming broadcast Intent."

这与使用通知栏向用户提供 Notification 的想法有关。这个想法是,你永远不应该打断用户他们当时正在尝试做的事情。

Android 赞赏用户随时知道他们想做什么,操作系统无权打断用户。这与使用弹出窗口提醒用户传入事件的其他系统形成鲜明对比。


所以您的报价背后的想法是,您永远不应该通过启动您自己的 Activity 来将用户的注意力从他当前的 Activity 中拉出来。

这可能会很糟糕,假设您正在玩游戏,突然 Luis 的 Activity 显示在游戏前面。


但是,该规则也有异常(exception)情况:

1

如果用户已经在使用您的应用,并且您收到了Intent,那么您的BroadcastReceiver 应该启动您自己的 Activity 。

当用户没有使用您的应用时,发布通知

您可以在 Whatsapp 等应用中看到此类行为。如果您在应用程序中,则不会收到通知,而应用程序只会显示新消息。如果您不在应用程序中,您会收到通知。

2

有时开始这样的 Activity 是预期的行为,这是有道理的

一个明显的例子是电话应用程序。它必须在电话响起时启动,我们已经接受了这一点。

这是从接收器启动 Activity 的另一个合法用例。这是一个时钟应用程序,设计为在手机充电时启动:

关于android - 从不从广播接收器开始 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24033194/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com