从通知中实现setOnClickPendingIntent



我构建了包含按钮的自定义通知,当用户按下按钮时,我想登录。

按钮不应该打开任何活动,而应该只打开逻辑人员,如更改歌曲。

代码:

        RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.notification);
        contentView.setTextViewText(R.id.toptext, nowPlayingTitle);
        //this not work
        Intent intent = new Intent(this, receiver.class);
        intent.putExtra("UNIQ", "1");
        PendingIntent pendingIntent = PendingIntent.getBroadcast(
                this.getApplicationContext(), 234324243, intent, PendingIntent.FLAG_CANCEL_CURRENT)
        contentView.setOnClickPendingIntent(R.id.imageButtonPlay,
                pendingIntent);
        notification.contentView = contentView; 
        // this is to return to my activity if click somwhere else in notification
        Intent notificationIntent = new Intent(this, MYACTIVITY.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
        notification.contentIntent = contentIntent;
        mNotificationManager.notify(NOTIFICATION_ID, notification);

我不知道setOnClickPendingIntent的窍门第二个参数需要什么?如何在用户按下按钮后调用函数?

我可能错过了一些东西,因为我不了解接收器端以及用户按下后发生了什么

您忽略了一个事实,即您创建的按钮实际上不属于您的应用程序。它是在另一个上下文、另一个过程中创建的。它无法调用您的函数。

相反,当用户点击按钮时,该未决意图就会被激发。你可以通过你的接收器(在你的活动中)捕捉它,检查一些参数并执行操作。或者,您可以实现一个服务并在后台处理此意图。我更喜欢这样。

感谢您的快速回答。我试着用接收器,但它从来没有发射过。代码在主要问题中,我为复习课创建了以下代码:

public class receiver extends BroadcastReceiver 
{   
    @Override
    public void onReceive(Context context, Intent intent) 
    {
   Bundle bundle = intent.getExtras(); 
    }      
}

但是点击通知永远不会启动接收器(调试模式下的测试)

相关内容

  • 没有找到相关文章

最新更新