0

我正在开发使用 OneSignal API 接收推送消息的应用程序。在处理打开消息的代码下方:

接收者

public class OneSignalBroadcastReceiver extends BroadcastReceiver implements OneSignal.NotificationOpenedHandler {


    private static RecadosDataSource rec;
    private static Context mcontext;
    private static Boolean opened = false;
    private static String Titulo = "";
    private static String Mensagem = "";


    @Override
    public void notificationOpened(String message, JSONObject additionalData, boolean isActive) {
        try {

            this.mcontext = MainActivity.getInstance().getApplication().getApplicationContext();
            rec = new RecadosDataSource(this.mcontext);
            databaseManager(true,this.mcontext);
            rec.updateRecados(additionalData.getString("title"), message);
            databaseManager(false, this.mcontext);

        } catch (Throwable t) {
            t.printStackTrace();
        }
    }

}

问题是如何在这个类中获取上下文?以目前的方式,我无法获得上下文。

4

2 回答 2

0

NotificationOpenedHandler接口是一个简单的回调而不是 Android 广播。您可以使用任何初始化 OneSignal 并Context使用以下代码随时在您的应用程序中设置通知打开处理程序:

OneSignal.startInit(context).setNotificationOpenedHandler(new YourNotificationOpenedHandler()).init();

但是,我们建议从onCreate您的Application班级中调用它,因为这样可以提供最大的灵活性。更完整的示例在步骤4 中显示。添加我们的 SDK 设置指南的可选 NotificationOpenedHandler

于 2016-04-06T21:35:24.867 回答
0

这只是添加 CommonsWare评论。你在覆盖 onReceive 时调用 super 吗?如果是,请尝试将您的代码放在它之前

于 2016-04-06T14:12:13.863 回答