以 TextToSpeech 类为例,其构造函数需要一个类型为 Context 的参数。我的问题是, getSystemService 除了 STRING CONSTANT 和type-casted之外没有其他参数和 getApplicationContext 之间的区别是什么?传入一个类,如 TextToSpeech ?
答案 0 :(得分:1)
总之,
getApplicationContext()
返回在专用流程中运行的当前应用程序的上下文,而getSystemService(String name)
"按名称" 返回系统级服务的句柄,其中系统级服务在单独的进程中运行和"句柄" 允许通过进程间通信(IPC
)调用服务方法。我希望您所谈论的差异是指Android
安全模型,其中AFAIK分为两类,用于调用由servicemanager
管理的系统级服务:< / p>
LAYOUT_INFLATER_SERVICE
,PackageManager
和其他); Linux
进程)明确要求特定权限( s )的系统级服务。权限由设备的物理用户授予。由于访问第1类的系统级服务不需要特定权限,因此可以使用需要Context
作为参数来访问服务的附加抽象层来包装与它们的交互(例如{{ 3}})。