通知のボタンにカスタムメソッドを割り当てる方法

通知にボタンを作成すると、ユーザーインターフェースを編集するときに使用していたように、リスナーにボタンを割り当てることはできません。 通知にアクションを割り当てる主な方法は、意図(意図)です。



アクティビティへの遷移にボタンを割り当てるために、対応するインテントを作成するだけで十分です。その中に必要なアクションを記述します。つまり、どこからどこへ行くのかを説明します。彼にインテントフィルターを操作するアクションを与え、インテントをキャッチするBroadcastReciverを作成し、必要なメソッドを実行します。



それでは、まずは通知を作成しましょう。 この例では、次のすべてのアクションを個別のsendNotificationメソッドに入れています。 ただし、最初に、受信者がインテントをキャッチできるように、キーを記述する行を作成する必要があります。 多くのアプリケーションは常にシステムにインテントを注入するため、このキーは一意でなければなりません



//   String BROADCAST_ACTION = "com.example.uniqueTag"; public void sendNotification () { NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); Intent intent = new Intent(BROADCAST_ACTION); //          Intent   .getBroadcast PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intentStopTrip, 0); //  Notification BuilderNote = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_example) .setContentTitle("Example title") .setContentText("Example text") .setContentIntent(pendingIntentPush) //        pendingIntent .addAction(R.mipmap.ic_example, "Button name", pendingIntent) .build(); //   BuilderNote.flags |= Notification.FLAG_AUTO_CANCEL; notificationManager.notify(0, BuilderNote); }
      
      





次に、BroadCastReciverレシーバーを作成する必要があります。 これを行うには、フォルダーapp-> New-> Other-> BroadcastReciverを右クリックします。 次に、名前を付けます。開いたファイルで、代わりにメソッドを記述して、例外をスローする形でスタブを削除する必要があります



 public class ExampleReciver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { exampleMethod(); } }
      
      





しかし、これに加えて、どのInetntを受信すべきかを明確にするために、受信機のIntent Filterを設定する必要があります。 これを行うには、レシーバーのマニフェストとコードブロックに移動し、Intent Filterを作成します。ここでは、最初に作成された文字列変数BROADCAST_ACTIONの内容を書き込みます



 <receiver android:name=".StopTimerReciver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="com.example.uniqueTag" /> </intent-filter> </receiver>
      
      





以上で、通知で作成したボタンをクリックすると、BroadcastReciver本体で定義されたメソッドが起動します



All Articles