如何仅在 android 应用程序中调用 ParsePush.SubscribeInBackground 方法一次?

Posted

技术标签:

【中文标题】如何仅在 android 应用程序中调用 ParsePush.SubscribeInBackground 方法一次?【英文标题】:How to call ParsePush.SubscribeInBackground method only Once in android application? 【发布时间】:2015-01-16 07:37:53 【问题描述】:

我在我的 android 应用程序中使用 Parse 服务器。并且还使用解析推送服务。 我已经设置了

ParsePush.subscribeInBackground("ChannelName");

在我的应用程序类中。

当用户从应用设置中禁用通知时,我正在使用

ParsePush.unSubscribeInBackground("ChannelName");

但问题是,我在我的应用程序类中调用了解析推送订阅方法,所以它再次在安装表中设置了“ChannelName”。

问题 - 在我的 android 应用中,我在哪里声明 ParsePush.subscribeInBackground("ChannelName") 方法?

我只想给ParsePush.subscribeInBackground("ChannelName") 打一次电话。当用户首次安装我的 Android 应用时。

提前致谢!

【问题讨论】:

谢谢大家,问题已解决。我推荐了***.com/questions/15134718/…链接。 【参考方案1】:

您也可以通过检查 ParseInstallation 来检索已订阅的频道列表。无需将其他数据持久保存到 SharedPreferences。检查 ParseInstallation 以查看频道是否已被订阅,如果是,则不要重新订阅。

final ParseInstallation mInstall = ParseInstallation.getCurrentInstallation();
final List<String> mList = mInstall.getList("channels");

//there are no subscriptions listed on the parse installation
if( mList == null )

    //subscribe


else if ( !mList.contains("KEY") )

    //subscribe

您可以只使用一个 if 语句,但如果您不小心,以后可能难以阅读和破译。

if( mList != null && !mList.contains("KEY") ) 

    //subscribe!!!

【讨论】:

以上是关于如何仅在 android 应用程序中调用 ParsePush.SubscribeInBackground 方法一次?的主要内容,如果未能解决你的问题,请参考以下文章

仅在物理设备而非模拟器上运行 Android 应用程序

如何在没有控件的情况下在 android 中制作相机应用程序,以便仅在屏幕上显示来自镜头的视图? [关闭]

Context.startForegroundService() 仅在 Android 11 Samsung 设备上没有调用 Service.startForeground()

如何避免仅在 Android 上的 Phonegap 应用程序黑屏?

如何在 Android 中隐藏 DIV 上的灰色滚动条 - 它们仅在您无法滚动时显示

如何让 React Native 仅在 Android 操作系统上从包中获取/导入功能