Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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
android未接收到意图操作\u程序包\u已在已删除的程序包中删除_Android_Android Intent_Package_Broadcastreceiver - Fatal编程技术网

android未接收到意图操作\u程序包\u已在已删除的程序包中删除

android未接收到意图操作\u程序包\u已在已删除的程序包中删除,android,android-intent,package,broadcastreceiver,Android,Android Intent,Package,Broadcastreceiver,当我的android应用程序被删除时,我还想删除应用程序在SD卡上创建的文件,因为这些文件可能会消耗很多兆字节,并且只对我的应用程序有用 看来,接收包删除意图将是这样做的地方。 然而,我的广播接收器从未被调用——它似乎在包被删除之前就被删除了 代码是: public class UninstallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent

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

看来,接收包删除意图将是这样做的地方。 然而,我的广播接收器从未被调用——它似乎在包被删除之前就被删除了

代码是:

public class UninstallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action= intent.getAction(); Log.i("U", "ACTION " + action); etc. } } 公共类UninstallReceiver扩展了BroadcastReceiver{ @凌驾 公共void onReceive(上下文、意图){ String action=intent.getAction(); 日志i(“U”、“动作”+动作); 等 } } 在舱单中:

<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> 报告说:

正在删除的包没有收到此目的

Android 2.2添加了
getExternalFilesDir()
,它将指向外部存储上的一个位置,当卸载应用程序时,Android将自动清理该位置。然而,这只适用于Android2.2,有迹象表明,目前它的工作并不特别好。然而,这是2011年需要记住的事情


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

您必须在manifast中添加权限

<uses-permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED" />


此权限仅授予系统应用程序。所以我不能在我的应用程序中使用它。这个答案太错误了。需要此权限才能发送已删除的广播意图
包。即使系统会授予您此权限(它不会),也不会有帮助。这个答案应该删除。