类
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
信号,以便可以再次发出该信号
g_app_info_get_all()
g_app_info_get_all_for_type()
g_app_info_get_default_for_type()
g_app_info_get_fallback_for_type()
g_app_info_get_recommended_for_type()
g_desktop_app_info_get_implementations()
g_desktop_app_info_new()
g_desktop_app_info_new_from_filename()
g_desktop_app_info_new_from_keyfile()
g_desktop_app_info_search()
如果使用 gio-unix-2.0.pc
(GIR 命名空间 GioUnix-2.0
) 中的 GDesktopAppInfo
,则可以使用后一个函数。
在通常情况下,应用程序应尝试注意更改(执行诸如使缓存无效之类的操作),但不应对此采取措施。特别是,应用程序应避免在更改信号响应时调用 GAppInfo
API,并推迟这些操作,直到实际需要更新数据时为止。此案例的例外情况是在屏幕上实际显示应用程序信息的时候(例如,在搜索应用程序时或显示所有应用程序的列表时)。这样做的原因是,对已安装应用程序的列表所做的更改通常是成组进行的(如在系统更新期间),并且在每次更改时重新扫描该列表毫无意义且成本高昂。
自 2.40 起可用
信号
从 GObject 继承的信号 (1)
GObject::notify
当对象的某个属性通过 g_object_set_property()、g_object_set() 等函数设置其值时,notify 信号将在该对象上发出。