我想知道哪些用户已经卸载了我的应用程序,以便我可以要求他们提供反馈来改进应用程序。因此,我想检测用户何时在我的应用程序上启动了卸载过程。
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
?
答案 0 :(得分:2)
显然,您将无法执行此操作,您将不得不依靠一种称为“静默通知”的东西。
我们所做的是每3天或您希望的频率发送一次通知。 在客户端,一旦收到通知,我们就会打一个网络呼叫,该网络标记为客户端标记了NotificationReceived。现在,由于通知还不足以作为证明,因此我们将2/3丢失通知阈值作为卸载事件。对于客户,我们的计数器超出了确定的阈值,我们与他们联系以获取反馈。
由于用户已经决定卸载您的应用程序,因此在卸载时没有人愿意填写您的表格。
答案 1 :(得分:1)
阅读以下2个问题和答案:
据我所知,您必须将两者混在一起。阅读第一个解决方案的局限性。您必须与第二个解决方案一起确认第一个解决方案的卸载事件,以实现完整的实施。
答案 2 :(得分:1)
只需为服务器端的每个用户设置一个名为appLastPresent
的变量,并每天通过使用WorkManager's
PeriodicWorkRequest
调用API来更新该变量。用户安装应用程序时,还要设置installedDate
变量。
现在在服务器端设置一个计时作业,以检查installedDate
和appLastPresent
之间的差额是否大于7天。然后向用户发送询问问题或反馈的电子邮件或消息(如果更大)。
注意:用户可以离线使用7天。因此,仅发送类似why you are not using the app, if uninstalled please let us know why
答案 3 :(得分:1)
希望此solution对您有用。它可以帮助您了解应用程序卸载的原因,使用功能强大的预测引擎降低卸载率,还可以通过独特的可操作渠道(Android 4.0及更高版本)重新安装应用程序。