广播接收器未从远程视图pendingintentandroid接收意图

问题描述

所以我尝试使用 RemoteViews pendingintent 向广播接收器发送一些数据,但接收器从未被触发。

我尝试将 PendingIntent 的标志从 > cc -unqual -table gen_NP {noun = mkN "dog" ; mdfir = "hello"} s . NCase Nom => hello dog s . NCase Gen => hello dog's s . NPAcc => hello dog s . NPNomPoss => hello dog a . AgP3Sg Neutr 更改为 FLAG_UPDATE_CURRENT 但这不起作用。

以下是创建通知方法

FLAG_CANCEL_CURRENT

顺便说一句,public class CreateNotification { public static final String CHANNEL_ID = "CHANNEL_ID"; public static Notification notification; Context context; public Notification createNotification(Context context,Track track,PendingIntent pendingIntent) { notificationmanagerCompat notificationmanagerCompat = notificationmanagerCompat.from(context); this.context = context; RemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.notification_layout); setListeners(remoteViews); String image = track.getimageUri(); Bitmap icon; if(image.equals("default")) { icon = BitmapFactory.decodeResource(context.getResources(),R.drawable.ic_baseline_home_24); } else { icon = BitmapFactory.decodeFile(image); } notification = new NotificationCompat.Builder(context,CHANNEL_ID) .setSmallIcon(R.drawable.ic_baseline_music_note_24) .setonlyAlertOnce(true) .setShowWhen(false) .setongoing(true) .setContent(remoteViews) .setPriority(NotificationCompat.PRIORITY_HIGH) .build(); notificationmanagerCompat.notify(1,notification); return notification; } public void setListeners(RemoteViews remoteViews) { remoteViews.setTextViewText(R.id.notification_title,"Test7"); Intent play = new Intent(context,PlayingActivity.NotificationReceiver.class); play.putExtra("DO","play"); PendingIntent btn1 = PendingIntent.getbroadcast(context,1,play,PendingIntent.FLAG_UPDATE_CURRENT); remoteViews.setonClickPendingIntent(R.id.notification_pause,btn1); Intent pause = new Intent(context,PlayingActivity.NotificationReceiver.class); pause.putExtra("DO","pause"); PendingIntent btn2 = PendingIntent.getbroadcast(context,2,pause,PendingIntent.FLAG_UPDATE_CURRENT); remoteViews.setonClickPendingIntent(R.id.notification_play,btn2); Intent test = new Intent(context,PlayingActivity.NotificationReceiver.class); test.putExtra("DO","pause"); PendingIntent test3 = PendingIntent.getbroadcast(context,707,test,PendingIntent.FLAG_CANCEL_CURRENT); remoteViews.setonClickPendingIntent(R.id.notification_container,test); } } 中的 NotificationReceiverbroadcastReceiver。

创建通知的服务:

PlayingActivity.NotificationReceiver

我确实在 @Override public int onStartCommand(Intent intent,int flags,int startId) { createNotificationChannel(); Track track = new Track(displayName,"Test Artist","default"); CreateNotification createNotification = new CreateNotification(); Notification notification = createNotification.createNotification(this,track,pendingIntent); startForeground(1,notification); return START_STICKY; } private void createNotificationChannel() { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ NotificationChannel serviceChannel = new NotificationChannel(CreateNotification.CHANNEL_ID,"TEST",notificationmanager.IMPORTANCE_HIGH); notificationmanager manager = getSystemService(notificationmanager.class); manager.createNotificationChannel(serviceChannel); } } 注册了广播接收器,但它仍然无法正常工作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...