什么是 Android 幕后服务
What is Android Service under the hood
Android
文档指出:
A Service
不是 一个单独的进程。 Service
对象本身并不意味着它在自己的进程中是 运行;除非另有说明,否则它与它所属的应用程序在同一进程中运行。
A 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 对象。但是,与 Activity
和 BroadcastReceiver
不同,与 Integer
或 TextView
不同的是,您流程中的 Android 框架将通过实例化(如果需要)来响应特定的 IPC 事件) 和 Service
上的调用方法(例如,onStartCommand()
和 onBind()
)。
and how does linux system treat it?
Linux 忽略了 Java 个对象。
ps -t shows that it has a different PID
Java 对象未显示在 ps
输出中。
Android
文档指出:
A Service
不是 一个单独的进程。 Service
对象本身并不意味着它在自己的进程中是 运行;除非另有说明,否则它与它所属的应用程序在同一进程中运行。
A 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 对象。但是,与 Activity
和 BroadcastReceiver
不同,与 Integer
或 TextView
不同的是,您流程中的 Android 框架将通过实例化(如果需要)来响应特定的 IPC 事件) 和 Service
上的调用方法(例如,onStartCommand()
和 onBind()
)。
and how does linux system treat it?
Linux 忽略了 Java 个对象。
ps -t shows that it has a different PID
Java 对象未显示在 ps
输出中。