在棒棒糖设备

时间:2016-06-15 14:45:54

标签: android uninstall

我想知道哪些用户已经卸载了我的应用程序,以便我可以要求他们提供反馈来改进应用程序。因此,我想检测用户何时在我的应用程序上启动了卸载过程。

StackOverflow上的older solutions之一有以下步骤:

 List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(MAX_PRIORITY); 
         String activityName = taskInfo.get(0).topActivity.getClassName();
         if (activityName.equals("com.android.packageinstaller.UninstallerActivity")) {
 // do whatever is needed

自Lollipop以来,getRunningTasks已被弃用。那么如何在没有getRunningTask的情况下检测com.android.packageinstaller.UninstallerActivity活动?

或者,我的应用程序上是否还有其他检测卸载过程的方法?可能使用getAppTask

4 个答案:

答案 0 :(得分:2)

显然,您将无法执行此操作,您将不得不依靠一种称为“静默通知”的东西。

我们所做的是每3天或您希望的频率发送一次通知。 在客户端,一旦收到通知,我们就会打一个网络呼叫,该网络标记为客户端标记了NotificationReceived。现在,由于通知还不足以作为证明,因此我们将2/3丢失通知阈值作为卸载事件。对于客户,我们的计数器超出了确定的阈值,我们与他们联系以获取反馈。

由于用户已经决定卸载您的应用程序,因此在卸载时没有人愿意填写您的表格。

答案 1 :(得分:1)

阅读以下2个问题和答案:

  1. native solution

  2. GCM solution

据我所知,您必须将两者混在一起。阅读第一个解决方案的局限性。您必须与第二个解决方案一起确认第一个解决方案的卸载事件,以实现完整的实施。

答案 2 :(得分:1)

只需为服务器端的每个用户设置一个名为appLastPresent的变量,并每天通过使用WorkManager's PeriodicWorkRequest调用API来更新该变量。用户安装应用程序时,还要设置installedDate变量。

现在在服务器端设置一个计时作业,以检查installedDateappLastPresent之间的差额是否大于7天。然后向用户发送询问问题或反馈的电子邮件或消息(如果更大)。

注意:用户可以离线使用7天。因此,仅发送类似why you are not using the app, if uninstalled please let us know why

的电子邮件查询

答案 3 :(得分:1)

希望此solution对您有用。它可以帮助您了解应用程序卸载的原因,使用功能强大的预测引擎降低卸载率,还可以通过独特的可操作渠道(Android 4.0及更高版本)重新安装应用程序。