在删除的包中删除

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

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

代码是:

public class UninstallReceiver extends BroadcastReceiver {
 @Override
 public void onReceive(Context context, Intent intent) {
  String action= intent.getAction();
  Log.i("U", "ACTION " + action);
  etc.
 }
}

并且在清单中:

 <application android:debuggable="true"
  android:icon="@drawable/icon"
  android:label="@string/app_name">

  <receiver android:name ="com.boom.UninstallReceiver">
   <intent-filter>
        <action android:name="android.intent.action.PACKAGE_REMOVED"/> 
     <data android:scheme="package" />
   </intent-filter>
  </receiver>

该文件说:

正在被移除的软件包未收到此Intent。

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

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


您必须在显示中添加权限。

<uses-permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED" />
链接地址: http://www.djcxy.com/p/50651.html

上一篇: REMOVED in the removed package

下一篇: How to fix Service Instance Issue?