非常に単純なアプリを作成しようとして、奇妙な動作に遭遇しました。私は通知を発行しています。ユーザーがそれをクリックすると、ランダムなテキストがクリップボードにコピーされます。通知を起動する方法は次のとおりです。
// Build notification
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Intent intent = new Intent(this, NotificationBroadcastReceiver.class);
intent.putExtra("test", "hello");
PendingIntent broadcastIntent = PendingIntent.getBroadcast(this, 0, intent, Intent.FILL_IN_DATA | PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder notification = new NotificationCompat.Builder(this)
.setContentTitle("Hello!")
.setContentText("Hi!")
.setSmallIcon(R.drawable.icon)
.setContentIntent(broadcastIntent)
.setOngoing(false)
.setDefaults(Notification.DEFAULT_ALL)
.setTicker("Click me!")
.setAutoCancel(true);
notificationManager.notify(0, notification.build());
そして、これは私のものBroadcastReceiver
です:
public class NotificationBroadcastReceiver extends BroadcastReceiver {
public NotificationBroadcastReceiver() {
}
@Override
public void onReceive(Context context, Intent
// Copy the text to the clipboard when notification is clicked
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("", "");
clipboard.setPrimaryClip(clip);
}
}
空の文字列をクリップボードにコピーしているだけです。このようにして、通知をクリックしても、設定時に必要なように通知が消えませんがsetAutoCancel(true)
、行を削除すると:
clipboard.setPrimaryClip(clip);
その後、BroadcastReceiver
通知はクリックすると無視されます。なぜこうなった?