通知上的AddAction在Xamarin(PCL)中执行方法

时间:2017-10-19 21:00:41

标签: android xamarin notifications xamarin.forms

我想在PCL AddData();中使用方法帮助执行,但我正在寻找一种方法将其附加到下面名为AddAction的通知的属性中:

.AddAction(Resource.Drawable.tick_notify, "Take", pIntent)

但我不知道如何连接它,因为第三参数需要PendingIntent是否有办法从{添加AddData方法{1}}? 执行某项行动?

EDITED

Service.cs

PCL

1 个答案:

答案 0 :(得分:0)

没有办法直接将方法与通知行动联系起来。

当然,因为通知是在系统电话界面上运行的,而不是您的应用代码。

您应构建待定意图并使用接收器才能接收回调。

这种限制在Xamarin中以相同的方式存在。

你可以在谷歌样本UniversalMusicPlayer#MediaNotificationManager.java

中找到一个例子(在标准的Android java代码中)

创建你的意图:

mAddDataPendingIntent = PendingIntent.getBroadcast(mService, REQUEST_CODE,
                new Intent(ACTION_ADD_DATA).setPackage(pkg), PendingIntent.FLAG_CANCEL_CURRENT);

然后在构建通知时:

notificationBuilder.addAction(new NotificationCompat.Action(icon, label, mAddDataPendingIntent));

注册您的广播:

IntentFilter filter = new IntentFilter();
                filter.addAction(ACTION_ADD_DATA);
                mService.registerReceiver(this, filter);

接受行动:

@Override
public void onReceive(Context context, Intent intent) {
    final String action = intent.getAction();
    LogHelper.d(TAG, "Received intent with action " + action);
    switch (action) {
        case ACTION_ADD_DATA:
            addData();
            break;
    }
}