【发布时间】:2014-03-26 05:20:25
【问题描述】:
我想清理我的应用程序在UnInstalling应用程序上创建的垃圾。
使用 ManiFest 文件:-
在清单文件中添加:
<receiver android:name="com.netdoers.com.ui.CleanReceiver" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED" >
</action>
<data android:scheme="package"/>
</intent-filter>
</receiver>
创建接收器来捕获BroadCast Event
public class CleanReceiver extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent) {
CustomToast.showToastMessage(context, "Uninstalling Application");
Log.e("Uninstall", "CleanReceiver Called");
}
}
在 Java 代码中:-
BroadCastReceiver br = new CleanReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
intentFilter.addDataScheme("package");
registerReceiver(br, intentFilter);
但在卸载应用程序时,接收器从未被调用过。
Java 和 Manifest 都不会在卸载应用程序时调用 Receiver。卸载应用时如何捕捉广播事件?
【问题讨论】:
-
@nKn :我已经尝试过该解决方案,但它对我不起作用:/
-
@nKn :因为这些 Action.PACKAGE_REMOVED 是基于系统的广播,所以它没有被调用还是什么?
-
这看起来不像是重复的。另一个问题与我自己的申请无关。
标签: android android-broadcast android-package-managers