应用允许用户回答决定卸载它们的原因可能很有用。
似乎Dolphin web browser应用(和“everything me launcher”)设法绕过它,现在每次卸载应用时它都会显示一个网页(在默认的网络浏览器上)。
即使我使用ADB卸载,也会发生这种情况。
作为一个用户,我真的很讨厌它,但它仍然很有趣,因为据我所知,应用程序无法获得卸载自己的意图。
怎么可能?他们是如何克服这个问题的?
这是一个黑客吗?
答案 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
}