2015-07-23 4 views
0

Я пытаюсь поймать clipboardChanged события в фоновом режиме службыНе удается поймать событие буфера обмена в фоновом режиме службы андроида

public class MainActivity extends ActionBarActivity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Intent i = new Intent(MainActivity.this, TranslateService.class); 
     startService(i); 
    } 
} 


public class TranslateService extends IntentService implements ClipboardManager.OnPrimaryClipChangedListener { 

    public TranslateService() { 
     super(null); 
    } 

    public TranslateService(String name) { 
     super(name); 
     ClipboardManager manager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
     manager.addPrimaryClipChangedListener(this); 
    } 



    @Override 
    protected void onHandleIntent(Intent intent) { 

    } 

    @Override 
    public void onPrimaryClipChanged() { 
     Toast.makeText(this, "Working", Toast.LENGTH_LONG).show(); 
    } 
} 

Он должен сделать тост «Работа», если событие. Я также попытался создать ClipboardManager и добавить слушателя в onHandleIntent, и он тоже не работал. Любые идеи?

ответ

0

Когда вызывается конструктор по умолчанию, вы не добавляете слушателя к ClipboardManager.

Я думаю, вы хотели использовать this(null) в своем конструкторе по умолчанию вместо прямого вызова super(null).

public TranslateService() { 
    this(null); 
} 
+0

Не сильно меняется. Все еще не работает –