2017-01-09 3 views
0

서비스 클래스에 addPrimaryClipChangedListener()을 구현했습니다.하지만 일부 텍스트를 복사하면 onPrimaryClipChanged() 메서드가 여러 번 호출됩니다.Android : OnPrimaryClipChangedListener() 여러 번 호출

출력 :

RESUT:copy text 
RESUT:copy text 
RESUT:copy text 

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; 
    } 
} 

방법은이 방법을 하나의 시간에 전화하는?

답변

0

구체적인 해결책이 없으므로이 문제의 해결 방법을 발견했습니다. 오버레이를 만들 때마다 실제로 확인할 수 있으며 클립 보드에 데이터가없는 경우 오버레이를 셀프 스탠드 할 수 있습니다.

if (clipboard.getText().isEmpty()) { selfstop(); //make a call in the overlay service to stop itself }