android - 什么是 Android 服务

标签 android android-service

Android 文档指出:

服务不是一个单独的进程。 Service 对象本身并不意味着它在自己的进程中运行;除非另有说明,否则它与它所属的应用程序在同一进程中运行。

服务不是线程。它本身并不是脱离主线程进行工作的方法(以避免 Application Not Responding 错误)。

那又是什么呢?它是如何在 Java 中实现的,Linux 系统如何处理它? ps -t 显示它具有不同的 PID

最佳答案

Then what is it?

嗯,它是一个 Java 对象,就像 Activity , BroadcastReceiver

How is it implemented under the hood in java

它只是一个 Java 对象。但是,像ActivityBroadcastReceiver , 而不同于 IntegerTextView ,您进程中的 Android 框架将通过实例化(如果需要)和调用 Service 上的方法来响应特定的 IPC 事件。 (例如,onStartCommand()onBind())。

and how does linux system treat it?

Linux 忽略了 Java 对象。

ps -t shows that it has a different PID

Java 对象没有出现在 ps 中输出。

关于android - 什么是 Android 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33987918/

相关文章:

java - 分配的变量神秘地变为空

java - 如何将图库中的图像设置为 slider ?

android - 从服务显示警报对话框时出现异常 - 无法添加窗口 - token null 不适用于应用程序

android - Google IO Rest 设计模式,完成 ContentProvider 并坚持从网络获取数据

java - 从 Activity 向 Intent 传递附加值会抛出 NullPointerException

android - BroadcastReceiver 或 Messenger 通过 Handler

android - 将 PlayServices/Firebase 从 10.0.1 更新到 10.2.0 时出现问题

java - Android 完全从手机中删除状态栏? (所有应用全屏)

java - 我们可以在另一个类中传递注入(inject)的对象吗

android - 如何以编程方式将单词添加到任何 Android 键盘预测词典中?