写了一个监听剪切板的方法,想看看她运行在Activity不同生命周期里的效果。方法如下。 private void clipListener(){ //监听剪切板 final ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); if (null != clipboardManager) { try { clipboardManager.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() { @Override public void onPrimaryClipChanged() { if (!clipboardManager.hasPrimaryClip()) { return; } String content = clipboardManager.getPrimaryClip().getItemAt(0).getText().toString(); Toast.makeText(MainActivity.this, content, Toast.LENGTH_LONG).show(); } }); } catch (Exception e) { } } }
1、在onCreate(),onStart(),onPause(),onResume(),onStop里监听,程序运行在后台依然能执行监听里的逻辑。
2、在onRestart()里监听,第一次按home键不起作用,因为没有运行onRestart方法,第二次按home键,
程序运行在后台能够执行监听里的逻辑。
3、在onDestroy()里监听,完全没有必要,就算运行到这个方法,程序也被杀死了。
结论:不管在哪个生命周期,只要运行过clipListener(),在没有remove之前,程序一直处于监听状态。