@CallSuper protected void onStartLoadingApps(final Map<String/* package */, T> apps) {
		mStarted = true;
		final IntentFilter pkg_filter = new IntentFilter();
		pkg_filter.addAction(Intent.ACTION_PACKAGE_ADDED);
		pkg_filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
		pkg_filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
		pkg_filter.addDataScheme("package");
		context().registerReceiver(mPackageEventsObserver, pkg_filter);

		final IntentFilter pkgs_filter = new IntentFilter();
		pkgs_filter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE);
		pkgs_filter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE);
		context().registerReceiver(mPackagesEventsObserver, pkgs_filter);

		//noinspection WrongConstant
		for (final ApplicationInfo app : context().getPackageManager().getInstalledApplications(PM_FLAGS_APP_INFO))
			apps.put(app.packageName, createEntry(app, null));
	}
Called upon the first fetch to build the list lazily and start to monitor related events.
mobile/src/main/java/com/oasisfeng/common/app/AppListProvider.java