android通知点击打开,android – OneSignal推送通知点击打开活动

我已经集成了一个用于推送通知的信号库.我想在应用未运行时通过点击推送通知打开特定活动

我正在接收推送通知但是当我点击通知时,应用程序崩溃了.这是我的通知接收器代码

public class ExampleNotificationOpenedHandler implements OneSignal.NotificationOpenedHandler

{

Context context;

@Override

public void notificationOpened(OSNotificationOpenResult result) {

OSNotificationAction.ActionType actionType = result.action.type;

JSONObject data = result.notification.payload.additionalData;

String customKey;

if (data != null) {

customKey = data.optString("customkey", null);

if (customKey != null)

Log.e("OneSignalExample", "customkey set with value: " + customKey);

}

if (actionType == OSNotificationAction.ActionType.ActionTaken)

Log.i("OneSignalExample", "Button pressed with id: " + result.action.actionID);

Intent intent = new Intent(context, User_Detail.class);

intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

}

这是我的错误消息

Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference

解决方法:

我只是错过了在onReceivedMethod之前在类中构建构造函数

Context context2;

ExampleNotificationOpenedHandler(Context context) {

context2 = context;

}

@Override

public void notificationOpened(OSNotificationOpenResult result) {

OSNotificationAction.ActionType actionType = result.action.type;

JSONObject data = result.notification.payload.additionalData;

String customKey;

Intent intent = new Intent(context2,User_Detail.class);

intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);

context2.startActivity(intent);

if (data != null) {

customKey = data.optString("customkey", null);

if (customKey != null)

Log.e("OneSignalExample", "customkey set with value: " + customKey);

}

if (actionType == OSNotificationAction.ActionType.ActionTaken)

{

Log.i("OneSignalExample", "Button pressed with id: " + result.action.actionID);

}

并在Application类中传递上下文

@Override

public void onCreate() {

super.onCreate();

mInstance = this;

OneSignal.startInit(this)

.setNotificationOpenedHandler(new ExampleNotificationOpenedHandler(this))

.init();

}

标签:onesignal,android,push-notification

来源: https://codeday.me/bug/20190828/1753046.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值