我在服务addPrimaryClipChangedListener()
中实现了class.But,当我复制一些文本时,onPrimaryClipChanged()
方法会被多次调用。
产出:
RESUT:复制文本RESUT:复制文本
Mycode
public class MyService extends Service {
private ClipboardManager mCM;
@Override
public int onStartCommand(final Intent intent, int flags, int startId) {
mCM = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
// registerPrimaryClipChanged();
mCM.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() {
@Override
public void onPrimaryClipChanged() {
String copyText = mCM.getText().toString();
Log.d("RESULT", copyText);
}
});
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
如何只调用此方法一次?
发布于 2017-08-27 10:01:28
我已经找到了解决这个问题的办法,因为没有具体的解决办法。如果剪贴板中没有数据,那么就可以自动停止覆盖。
if (clipboard.getText().isEmpty()) { selfstop(); //make a call in the overlay service to stop itself }
https://stackoverflow.com/questions/41544472
复制相似问题