2016-10-12 9 views
0

ボタンを含むカスタムビューで通知があります。ユーザーが通知のボタンを押すと、トーストメッセージが表示されます。しかし、onReceiveは決して呼び出されないので、トーストは決して現れません。私は間違っているの?Android Notificationsカスタムビューとボタンを押す

 int icon = R.drawable.play; 
    long when = System.currentTimeMillis(); 
    Notification notification = new Notification(icon, "Custom Notification", when); 

    RemoteViews notificationView = new RemoteViews(this.getPackageName(),R.layout.notification); 
    PendingIntent listenerIntent = PendingIntent.getService(this, 0, new Intent(this, AudioControlListener.class), 0); 
    notificationView.setOnClickPendingIntent(R.id.background, listenerIntent); 

    notification.contentView = notificationView; 

    Intent notificationIntent = new Intent(this, MainActivity.class); 
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
    notification.contentIntent = contentIntent; 

    startForeground(1, notification); 

私の放送受信機クラス

public static class AudioControlListener extends BroadcastReceiver { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      Toast.makeText(context, "Button pressed", Toast.LENGTH_SHORT).show(); 
     } 
    } 
+0

電話のホームページにトーストを見せたいですか? –

+0

それは気にしない。私はちょうどそのトリガー 'onReceive'メソッドが欲しいです。 – David

答えて

2

あなたはBroadcastReceiver目標を持っているIntentPendingIntent.getService()を使用しています。代わりにPendingIntent.getBroadcast()を使用する必要があります。レシーバがマニフェストに登録されていることを確認してください。

関連する問題