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

インターフェースは、NotificationOpenedHandlerAndroid ブロードキャストではなく単純なコールバックです。次のコードを使用して、 OneSignal を any で初期化Contextし、アプリでいつでも通知を開いたハンドラーを設定できます。

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

ただし、最も柔軟に対応できるため、クラスのから呼び出すことをお勧めしonCreateます。Applicationより完全な例を手順 4 に示します。SDK セットアップ ガイドのオプションの NotificationOpenedHandler を追加します。

于 2016-04-06T21:35:24.867 に答える
0

これは CommonsWare のコメントを追加しただけです。onReceiveをオーバーライドするときにスーパーを呼び出しますか? はいの場合は、その前にコードを配置してみてください

于 2016-04-06T14:12:13.863 に答える