不推荐使用 PushService 类型的方法 setDefaultPushCallback(Context, Class<? extends Activity>)

Posted

技术标签:

【中文标题】不推荐使用 PushService 类型的方法 setDefaultPushCallback(Context, Class<? extends Activity>)【英文标题】:The method setDefaultPushCallback(Context, Class<? extends Activity>) from the type PushService is deprecated 【发布时间】:2014-10-31 14:28:28 【问题描述】:

我一直面临的整个问题是这行代码

PushService.setDefaultPushCallback(this, MainActivity.class);

在导入 PushService 时,不推荐使用 setDefaultPushCallback|()。为什么会这样。我收到通知,但点击应用程序正在崩溃。应用未运行时也无法接收。

【问题讨论】:

我现在有同样的问题仪式。我正在阅读它,我会回复你。讨厌人们在没有否定理由的情况下投反对票。 【参考方案1】:

我找到了解决方案,而且非常简单。 我发现了同样的问题 https://***.com/a/26180181/3904085

" 花了几个小时后。找到了解决方案:实现您的接收器并扩展 ParsePushBroadcastReceiver 类。

Receiver.java

public class Receiver extends ParsePushBroadcastReceiver 

    @Override
    public void onPushOpen(Context context, Intent intent) 
        Log.e("Push", "Clicked");
        Intent i = new Intent(context, HomeActivity.class);
        i.putExtras(intent.getExtras());
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    

在清单中使用它,(而不是使用 ParsePushBroadcastReceiver)

项目清单代码:

<receiver
    android:name="your.package.name.Receiver"
    android:exported="false" >
    <intent-filter>
        <action android:name="com.parse.push.intent.RECEIVE" />
        <action android:name="com.parse.push.intent.DELETE" />
        <action android:name="com.parse.push.intent.OPEN" />
    </intent-filter>
</receiver>

" 感谢@Ahmad Raza

【讨论】:

【参考方案2】:

来自 onPushOpen() 上的 Parse 文档:

当用户打开推送通知时调用。将分析信息发送回 Parse,表明应用程序已从此推送通知中打开。默认情况下,这将导航到 ParsePushBroadcastReceiver.getActivity(Context, Intent) 返回的 Activity。如果推送包含“uri”参数,则会触发 Intent 以查看该 URI,并使用 ParsePushBroadcastReceiver.getActivity(android.content.Context, android.content.Intent) 在后台堆栈中返回的 Activity。

因此,如果您像这样覆盖 onPushOpen(),则不会发送任何分析。

这是我的代码:

public class Receiver extends ParsePushBroadcastReceiver 

    @Override
    protected Class<? extends Activity> getActivity(Context context, Intent intent) 
        return HomeActivity.class;
    

您需要像上面的帖子一样注册接收器。

使用 Parse 1.10.3 测试

【讨论】:

以上是关于不推荐使用 PushService 类型的方法 setDefaultPushCallback(Context, Class<? extends Activity>)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Hibernate 5 正确创建 JPQL 查询(不推荐使用查询类型)

使用 BouncyCastle 不推荐使用的方法进行贝宝按钮加密的 Java 代码 - 如何修复?

Parse -Android 获取多个推送通知

Python 标准化输出

推荐使用的派生方法:super().__init__()

警告:不推荐使用从地址类型继承的合约成员“余额”。坚固性