我的 BroadcastReceiver 类有一个问题,它作为内部类在我的 MainActivity 中。每次单击应用程序通知中的按钮时,都会收到此错误:
java.lang.RuntimeException: Unable to instantiate receiver com.oniktech.testmediaservice.MainActivity$MediaReceiver: java.lang.InstantiationException: java.lang.Class<com.oniktech.testmediaservice.MainActivity$MediaReceiver> has no zero argument constructor
这是我的代码:
val playPauseAction = NotificationCompat.Action(
icon, play_pause,
MediaButtonReceiver.buildMediaButtonPendingIntent(
this,
PlaybackStateCompat.ACTION_PLAY_PAUSE
)
)
builder.setContentTitle("my test")
.addAction(playPauseAction)
.setStyle(
androidx.media.app.NotificationCompat.MediaStyle()
.setMediaSession(mediaSession.getSessionToken())
.setShowActionsInCompactView(0)
)
notificatioManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
notificatioManager.notify(0, builder.build())
这是我的内部课程:
inner class MediaReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
MediaButtonReceiver.handleIntent(mediaSession, intent)
}
}
我知道在这种情况下我不应该使用内部类。但我必须在其中使用我的“mediaSession”对象。我该怎么办?谢谢你的帮助。