我需要检测何时卸载我的应用程序。为此,我已经看到logcat发送出UNINSTALL_PACKAGE意图,并且我只是将其添加到了我现有的广播接收器中。但是它只是无法捕捉到它,而我正在听的其他意图TIME_TICK可以完美地工作。为什么?

当前使用的代码:

    private IntentFilter intentFilter;

static {
    intentFilter = new IntentFilter();
    intentFilter.addAction(Intent.ACTION_TIME_TICK);
    intentFilter.addAction(Intent.ACTION_UNINSTALL_PACKAGE);
}

private final BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();
        if (action.equals(Intent.ACTION_UNINSTALL_PACKAGE) {
            Log.e("App", "Uninstalling");
        } else if (action.equals(Intent.ACTION_TIME_TICK){
        // this works
        }
    }
};

最佳答案

我需要检测何时卸载我的应用


出于明显的安全原因,没有支持的方法来执行此操作。


但这没抓住


ACTION_UNINSTALL_PACKAGE is an activity action。 Android设备上的任何内容都不应将其作为广播发送。因此,您不能通过BroadcastReceiver收听它。

08-18 01:48