我不认为有一个听众对此。但是您可以使用PendingIntent 和BroadcastReceiver 以另一种方式实现此逻辑
对于 OnClick
添加ContentIntent 和BroadcastReceiver。这样你就会知道BroadcastReceiver中的通知是否被点击了
Intent onClickIntent = new Intent(this, OnClickBroadcastReceiver.class);
PendingIntent onClickPendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, onClickIntent, 0);
mBuilder.setContentIntent(onClickPendingIntent);
在BroadcastReceiver 中你可以编写你的逻辑
public class OnClickBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//Open your activity here
Intent mainIntent = new Intent(context, YourActivity.class);
context.startActivity(mainIntent);
// Do your onClick related logic here
}
}
对于 onDismiss
为此,您需要在通知生成器中添加DeleteIntent
Intent onCancelIntent = new Intent(this, OnCancelBroadcastReceiver.class);
PendingIntent onDismissPendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, onCancelIntent, 0);
mBuilder.setDeleteIntent(onDismissPendingIntent);
和BroadcastReceiver 这是
public class OnCancelBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//Do your logic here
}
}
别忘了将这些BroadcastReceiver注册到AndroidManifest