GioAppInfoMonitor

自:2.40

描述 [src]

final class Gio.AppInfoMonitor : GObject.Object
{
  /* No available fields */
}

GAppInfoMonitor 监视应用程序信息,以查看其是否有更改。

GAppInfoMonitor 是一个非常简单的对象,用于监视应用程序信息数据库是否有更改(新安装或删除的应用程序)。

调用 g_app_info_monitor_get() 以获取 GAppInfoMonitor 并连接到 GAppInfoMonitor::changed 信号。当应用程序信息数据库更改时,此信号将被发出一次,并且在对 g_app_info_get_all() 或其他 g_app_info_*() 函数进行下一次调用之前,此信号将不会再次发出。这是因为监视应用程序信息数据库是否有更改是一项耗时的工作。

以下函数将重新激活 GAppInfoMonitor::changed 信号,以便可以再次发出该信号

如果使用 gio-unix-2.0.pc (GIR 命名空间 GioUnix-2.0) 中的 GDesktopAppInfo,则可以使用后一个函数。

在通常情况下,应用程序应尝试注意更改(执行诸如使缓存无效之类的操作),但不应对此采取措施。特别是,应用程序应避免在更改信号响应时调用 GAppInfo API,并推迟这些操作,直到实际需要更新数据时为止。此案例的例外情况是在屏幕上实际显示应用程序信息的时候(例如,在搜索应用程序时或显示所有应用程序的列表时)。这样做的原因是,对已安装应用程序的列表所做的更改通常是成组进行的(如在系统更新期间),并且在每次更改时重新扫描该列表毫无意义且成本高昂。

自 2.40 起可用

祖先

函数

g_app_info_monitor_get

获取当前线程默认主上下文的 GAppInfoMonitor

自:2.40

实例方法

GObject 继承的方法 (43)

请参阅 GObject 以获取方法的完整列表。

信号

Gio.AppInfoMonitor::changed

当应用程序信息数据库发生更改、安装或删除应用程序时发出的信号。

自:2.40

GObject 继承的信号 (1)
GObject::notify

当对象的某个属性通过 g_object_set_property()、g_object_set() 等函数设置其值时,notify 信号将在该对象上发出。