Dolphin Web浏览器在卸载时会如何得到通知?

时间:2013-08-26 08:57:08

标签: android android-intent uninstall

背景

应用允许用户回答决定卸载它们的原因可能很有用。

问题

似乎Dolphin web browser应用(和“everything me launcher”)设法绕过它,现在每次卸载应用时它都会显示一个网页(在默认的网络浏览器上)。

即使我使用ADB卸载,也会发生这种情况。

作为一个用户,我真的很讨厌它,但它仍然很有趣,因为据我所知,应用程序无法获得卸载自己的意图。

问题

怎么可能?他们是如何克服这个问题的?

这是一个黑客吗?

3 个答案:

答案 0 :(得分:1)

也许应用程序有一个后台服务,当它自己的onDestroy()回调被触发时检查前台应用程序,如果前台应用程序是android Package安装程序的卸载活动,它会为网页启动一个新意图?

答案 1 :(得分:0)

我的猜测是他们正在使用ACTION_PACKAGE_REMOVED。 http://developer.android.com/reference/android/content/Intent.html#ACTION_PACKAGE_REMOVED 无论是那种,还是Robin Hood和Frei Tuck方法,每个人都倾听来自另一方的广播事件。
只是一个猜测,但会调查它 这可能是一个选项:How can an app detect that it's going to be uninstalled?

答案 2 :(得分:0)

请尝试通过ActivityManager获取任务中的热门活动,并检查它是否为卸载活动。

核心代码:

ComponentName topActivity = mActivityManager.getRunningTasks(1).get(0).topActivity;
String packageName = topActivity.getPackageName();
String className = topActivity.getClassName();
Log.v(TAG, "packageName" + packageName);
Log.v(TAG, "className" + className);

if ("com.android.packageinstaller".equals(packageName)
    && "com.android.packageinstaller.UninstallerActivity".equals(className)) {
//Do anything you want here
}