java - 有没有一种方法可以监听和检测安装和卸载?

标签 java android android-recyclerview android-launcher

我正在尝试在 Android Studio 中构建启动器,并且我正在使用 RecyclerView

您知道,当安装应用程序时,它会自动添加到启动器菜单中。同样,当应用程序被删除时,它也会从 View 中删除。

应该使用哪种方法来实现这一点?现在,每次创建 View 时列表都会更新:

public ArrayList<AppInfo> getAppInfo(){
        ArrayList <AppInfo> appsList = new ArrayList<>();
        PackageManager pm = getPackageManager();
        Intent i = new Intent(Intent.ACTION_MAIN, null);
        i.addCategory(Intent.CATEGORY_LAUNCHER);

        List<ResolveInfo> allApps = pm.queryIntentActivities(i, 0);
        for(ResolveInfo ri:allApps) {
            AppInfo app = new AppInfo();
            app.label = ri.loadLabel(pm);
            app.packageName = ri.activityInfo.packageName;
            app.icon = ri.activityInfo.loadIcon(pm);
            appsList.add(app);
            System.out.println(app.label);

        }
        return appsList;
    }

最佳答案

<receiver
    android:name="com.your.receiver"
    android:enabled="true"
    android:exported="true" >
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                    <data android:scheme="package"/> 
                </intent-filter>
 </receiver>
 <uses-permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED" />

关于java - 有没有一种方法可以监听和检测安装和卸载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60173043/

相关文章:

java - Apache Camel http 到 http 路由以及响应转换

java - if 语句的奇怪行为

android - 是什么导致了 Android 中的 MotionEvent.ACTION_CANCEL?

android - Volley 调用后如何更新 recyclerview 适配器以获取更改的数据

java - 使用 Java 过滤日期

java - 在 JAVA 中删除列表中的所有 10 并在列表末尾附加相同数量的 0

android - 如何在 Android 中将文本更改为粗体?

java - 在 Android 中更改 View /Activity

java - 如何使用 Android 在 RecyclerView 中显示来自 Firestore 的数据?

android - RecyclerView 没有按预期滚动