Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 其他应用的Android Broadcastreceiver安装/删除不工作_Java_Android_Broadcastreceiver - Fatal编程技术网

Java 其他应用的Android Broadcastreceiver安装/删除不工作

Java 其他应用的Android Broadcastreceiver安装/删除不工作,java,android,broadcastreceiver,Java,Android,Broadcastreceiver,我有一个Broadcastreceiver来检测其他应用的安装或删除 这是我的Java public class AppListener extends BroadcastReceiver { @Override public void onReceive(Context var1, Intent var2) { // TODO Auto-generated method stub Log.d("AppTag", "Received!"); }

我有一个Broadcastreceiver来检测其他应用的安装或删除

这是我的Java

public class AppListener extends BroadcastReceiver {

    @Override
    public void onReceive(Context var1, Intent var2) {
        // TODO Auto-generated method stub

        Log.d("AppTag", "Received!");
}
}
这是我的舱单

<receiver android:name=".AppListener">
        <intent-filter android:priority="999">
            <category android:name="android.intent.category.DEFAULT" />
            <action android:name="android.intent.action.PACKAGE_ADDED" />
            <action android:name="android.intent.action.PACKAGE_REMOVED" />
            <action android:name="android.intent.action.PACKAGE_CHANGED" />
            <data android:scheme="package"/>
        </intent-filter>
    </receiver>


但每当我安装或删除一个应用程序时,什么都不会发生

您正在尝试收听添加的
ACTION\u PACKAGE\u
和替换的
ACTION\u PACKAGE\u等广播节目。对于安卓7.1及更低版本来说,这很好。在Android 8.0+上,您无法在清单中注册这些广播,如下所示


相反,您需要定期更新,例如通过
WorkManager
。这不会给你实时结果,但在Android 8.0+上实时结果不再是一个选项。

你正在测试哪个版本的Android?Android Oreo(8.0)谢谢。我想补充一点,你对Stackoverflow的总体评价对我非常有帮助。从长远来看,测试这种方法根本不可靠。例如,如果我在应用程序安装后不久重新启动设备,我的应用程序将不会检测到该安装:(@MoDev:这一特定限制并不让我感到惊讶。广播也会有同样的限制,因为不能保证在设备关闭之前你会收到广播并能够做有意义的工作。但是,
WorkManager
轮询引入的延迟肯定会增加发生这种风险的时间xists.在处理
WorkManager
JobScheduler
时,电池优化或打瞌睡模式如何?@MoDev:如果在这些模式处于活动状态时安装或升级应用程序,我会感到惊讶。而且,安装/升级操作可能会允许其他作业运行。总体而言,如果你的应用程序需要100%可靠的应用安装/升级实时知识,你的应用注定失败。