2016-12-27 3 views
0

Я хочу послушать буфер обмена, и если что-то скопировано, я получаю его и обрабатываю его. Так что я написал сервис для него. Но похоже, что система андроида убивает мой сервисный процесс после в то время как никакое слово не копируется в буфер обмена. Что я должен сделать, чтобы моя служба продолжала работать?Прослушивание буфера обмена в службе в android

public class Service_clipboard extends Service { 


    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 

     ClipboardManager.OnPrimaryClipChangedListener mPrimaryChangeListener = new ClipboardManager.OnPrimaryClipChangedListener() { 
      public void onPrimaryClipChanged() { 

       ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 

       DoSomeThing(clipboard.getText().toString()); 
      } 
     }; 

     ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
     clipboardManager.addPrimaryClipChangedListener(mPrimaryChangeListener); 

     return Service.START_REDELIVER_INTENT; 
    } 

    @Override 
    public IBinder onBind(Intent arg0) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

} 

ответ

0

Вы можете использовать Service#startForeground, это заставит систему не убивать ваш сервис, если только ему не нужна память. Компромисс заключается в том, что вам необходимо отправить уведомление, чтобы уведомить пользователя о том, что ваше приложение работает постоянно.

Смежные вопросы