Class AppInfoMonitor

All Implemented Interfaces:
Proxy

@Generated("org.javagi.JavaGI") public class AppInfoMonitor extends GObject

GAppInfoMonitor monitors application information for changes.

GAppInfoMonitor is a very simple object used for monitoring the app info database for changes (newly installed or removed applications).

Call get() to get a GAppInfoMonitor and connect to the Gio.AppInfoMonitor::changed signal. The signal will be emitted once when the app info database changes, and will not be emitted again until after the next call to AppInfo.getAll() or another g_app_info_*() function. This is because monitoring the app info database for changes is expensive.

The following functions will re-arm the Gio.AppInfoMonitor::changed signal so it can be emitted again:

The latter functions are available if using GDesktopAppInfo from gio-unix-2.0.pc (GIR namespace GioUnix-2.0).

In the usual case, applications should try to make note of the change (doing things like invalidating caches) but not act on it. In particular, applications should avoid making calls to GAppInfo APIs in response to the change signal, deferring these until the time that the updated data is actually required. The exception to this case is when application information is actually being displayed on the screen (for example, during a search or when the list of all applications is shown). The reason for this is that changes to the list of installed applications often come in groups (like during system updates) and rescanning the list on every change is pointless and expensive.

Since:
2.40
  • Constructor Details

    • AppInfoMonitor

      public AppInfoMonitor(MemorySegment address)
      Create a AppInfoMonitor instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
    • AppInfoMonitor

      public AppInfoMonitor()
      Create a new AppInfoMonitor.
  • Method Details

    • getType

      public static @Nullable Type getType()
      Get the GType of the AppInfoMonitor class.
      Returns:
      the GType
    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • asParent

      protected AppInfoMonitor asParent()
      Return this instance as if it were its parent type. Comparable to the Java super keyword, but ensures the parent typeclass is also used in native code.
      Overrides:
      asParent in class GObject
      Returns:
      the instance as if it were its parent type
    • get

      public static AppInfoMonitor get()

      Gets the GAppInfoMonitor for the current thread-default main context.

      The GAppInfoMonitor will emit a “changed” signal in the thread-default main context whenever the list of installed applications (as reported by g_app_info_get_all()) may have changed.

      The GAppInfoMonitor::changed signal will only be emitted once until g_app_info_get_all() (or another g_app_info_*() function) is called. Doing so will re-arm the signal ready to notify about the next change.

      You must only call g_object_unref() on the return value from under the same main context as you created it.

      Returns:
      a reference to a GAppInfoMonitor
      Since:
      2.40
    • onChanged

      Signal emitted when the app info database changes, when applications are installed or removed.
      Parameters:
      handler - the signal handler
      Returns:
      a signal handler ID to keep track of the signal connection
      Since:
      2.40
      See Also:
    • emitChanged

      public void emitChanged()
      Emits the "changed" signal. See onChanged(AppInfoMonitor.ChangedCallback).
    • builder

      public static AppInfoMonitor.Builder<? extends AppInfoMonitor.Builder> builder()
      A AppInfoMonitor.Builder object constructs a AppInfoMonitor with the specified properties. Use the various set...() methods to set properties, and finish construction with AppInfoMonitor.Builder.build().
      Returns:
      the builder object