プッシュメッセージを受け取るためにOneSignal APIを使用する開発とアプリケーションです。オープンメッセージを処理するコードの下:プッシュメッセージを開いた結果である非アクティビティクラスのAndroidコンテキストを取得
レシーバー
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();
}
}
}
問題は、このクラスのコンテキストを取得する方法ですか?現在の状況では私は文脈を得ることができません。
あなたは 'onReceive()'の中で 'Context'をあなたに渡します。このメソッドは、 'BroadcastReceiver'が大いに利用されるために必要です。つまり、APIはもちろん、OneSignalについては何も知らないと言われています。 – CommonsWare
私はonReceive()のオーバーライドを持っていますが、最初のポイントはnotificationOpenedです。 – JulianOliveira
'onReceive()'の前に 'notificationOpened()'が呼び出されたのは非常に奇妙です。その場合は、OneSignalに連絡し、アドバイスを求めてください。 'BroadcastReceiver'のエントリーポイントは' onReceive() 'とされています。もし彼らがそれを壊しているのであれば、あなたのような問題をどのように処理するかを開発者に伝える責任があります。 – CommonsWare