android-如何知道是否清除了应用程序数据或卸载了应用程序?

我正在开发基于Login-logout机制以及REST API集成的应用程序.

为了发出REST API请求,需要令牌.应用程序正在将此令牌和其他用户详细信息保存到SharedPreferences中.

用户登录的应用程序保存所有必需的数据,并且在注销时,所有数据都从SharedPreferences中删除,并且TOKEN条目从应用程序服务器中删除

应用程序还向GCM服务器注册,以便向用户发送推送通知.对于该应用程序,将设备注册ID发送到应用程序服务器.

但是,如果用户清除应用程序数据或卸载,则应用程序将打开登录屏幕并再次向应用程序服务器和GCM服务器注册,因此旧条目保留在应用程序服务器中,新条目将添加到服务器中.

因此,如果服务器向应用程序发送推送通知,则设备中会收到两个推送通知.

有什么方法可以通过程序检测是否清除了应用程序数据或卸载了应用程序?

任何帮助将不胜感激.

解决方法:

最后,我想出了以下解决方案.

我已经实现了带有实例ID API的GCM 3.0,以便使用Application和GCM服务器(而不是旧的GoogleCloudMessaging.register(SENDER_ID))向应用程序发送推送通知

因此,当应用程序服务器尝试向设备发送推送通知时,服务器将对旧设备ID收到“错误”:“未注册”响应,因此基于该服务器将删除无用的条目.

在GCM 2.0中,即使安装了应用程序,有时服务器也会收到“错误”:“未注册”响应,但在GCM 3.0中,它可以正常工作.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...