ClipboardManager OnPrimaryClipChangedListener вызывается дважды для каждой копии
Когда я копирую текст в буфер обмена, метод onPrimaryClipChanged вызывается дважды. Есть идеи почему?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
final ClipboardManager cliboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
cliboardManager
.addPrimaryClipChangedListener(new OnPrimaryClipChangedListener() {
@Override
public void onPrimaryClipChanged() {
ClipData clipData = cliboardManager.getPrimaryClip();
System.out
.println("********** clip changed, clipData: "
+ clipData.getItemAt(0));
}
});
return true;
}
Тест-кейс: Копирование текста "Продолжить" с сайта BBC приведет к следующему выводу:
Продолжить
Продолжить
Но если я отлаживаю программу, я вижу, что объект clipData имеет значение:
ClipData {text / plain {T: continue}}
первый раз onPrimaryClipChanged () вызывается и
ClipData {текст / обычный "BBC - домашняя страница » {T: продолжить}}
в следующий раз вызывается onPrimaryClipChanged ().
Таким образом, первый раз ClipDescription - это {text / plain}, а второй раз - ClipDescription {text / plain ".BBC - домашняя страница » } (т.е. включая заголовок веб-страницы)