android没有在被删除的包中接收Intent ACTION_PACKAGE_REMOVED

当我的Android应用程序被删除时,我还想删除应用程序在SD卡上创建的文件,因为这些文件可能消耗许多兆字节,并且仅用于我的应用程序。

似乎接收PACKAGE REMOVED意图将是这样做的地方。 但是,我的广播接收器从未被调用 – 它似乎在发送PACKAGE REMOVED意图之前被删除了

代码是:

公共类UninstallReceiver扩展BroadcastReceiver {
  @覆盖
  public void onReceive(Context context,Intent intent){
   String action = intent.getAction();
   Log.i(“U”,“ACTION”+动作);
  等等
  }
 }

并且,在清单中:

  

   
    
          
      
    
   

文件说:

要删除的包不会收到此Intent。

Android 2.2添加了getExternalFilesDir() ,它将指向Android将在卸载应用程序时自动清理的外部存储上的一个位置。 但是,这仅适用于Android 2.2,并且有迹象表明它目前效果不佳。 但是,2011年需要牢记这一点。

除此之外,您所能做的就是为用户提供一个菜单选项供用户进行清理,并希望用户在卸载之前使用它。

您必须在showast中添加权限。