START_STICKY 表示行为类似于服务的 Activity

Posted

技术标签:

【中文标题】START_STICKY 表示行为类似于服务的 Activity【英文标题】:START_STICKY for Activity that behaves like a Service 【发布时间】:2020-07-26 20:51:08 【问题描述】:

如果我们希望 Activity 像服务一样运行,我们可以使用以下方法将其移至后台:

moveTaskToBack(true);

我们可以使用以下命令将其从“最近”屏幕中隐藏:

android:excludeFromRecents="true"

但是我们如何让它 START_STICKY 在它被杀死后自动重新创建?

【问题讨论】:

这毫无意义。 ActivityService 完全不同。为什么要将Activity 用作ServiceActivity(通常)具有 UI(视图)并且是作为整个用户界面一部分的任务的一部分。 Service 是一个执行后台处理的组件。它没有用户界面。 @DavidWasser 我知道这一切,我想这样做是为了学习,这只是我想解决的一个挑战。 【参考方案1】:

Activity 被杀死后,您无法自动重新创建它。这将在用户设备上创建拒绝服务攻击,通过不断地在他们面前重新启动Activity 并阻止他们做任何其他事情。除非你认为它不会启动/显示任何 UI,而只是在创建但未启动的状态下运行,在这种情况下也没有办法这样做,因为这就是 Service 的用途—— Activitys 用于显示 UI。

短版:如果您想要这些类似服务的行为,您应该使用Service,然后从您的Activity 访问Service

【讨论】:

以上是关于START_STICKY 表示行为类似于服务的 Activity的主要内容,如果未能解决你的问题,请参考以下文章

IntentService 的 START_STICKY

RxJs操作符,其行为类似于withLatestFrom,但会等待第二个流的值。

Android:后台服务总是关闭

实现一个行为类似于 nginx 的 Undertow 反向代理

VBA:是不是可以创建一个行为类似于集合的类模块?

终端接入LTE网络过程中发生的测量事件