一般可以放在Activity的onResume中调用如下方法:

//获取剪切板内容private void getClipboardData() {    this.getWindow().getDecorView().post(new Runnable() {        @Override        public void run() {            //把获取到的内容打印出来            Log.i("YoungerHu", ClipBoardUtil.paste());        }    });}

对应的工具类是:

/** * 剪切板读写工具 */public class ClipBoardUtil {    /**     * 获取剪切板内容     * @return     */    public static String paste(){        ClipboardManager manager = (ClipboardManager) CourserApplication.getContext().getSystemService(Context.CLIPBOARD_SERVICE);        if (manager != null) {            if (manager.hasPrimaryClip() && manager.getPrimaryClip().getItemCount() > 0) {                CharSequence addedText = manager.getPrimaryClip().getItemAt(0).getText();                String addedTextString = String.valueOf(addedText);                if (!TextUtils.isEmpty(addedTextString)) {                    return addedTextString;                }            }        }        return "";    }    /**     * 清空剪切板     */    public static void clear(){        ClipboardManager manager = (ClipboardManager) CourserApplication.getContext().getSystemService(Context.CLIPBOARD_SERVICE);        if (manager != null) {            try {                manager.setPrimaryClip(manager.getPrimaryClip());                manager.setPrimaryClip(ClipData.newPlainText("",""));            } catch (Exception e) {                e.printStackTrace();            }        }    }}

具体原因我推测是这样,android Q的规定如下

只有默认输入法(IME)或者是目前处于焦点的应用, 才能访问到剪贴板数据.

而在onCreate或者onResume方法时,View可能还处于申请获取焦点状态,导致获取不到剪切板数据,所以当所有View都绘制完毕后,就可以获取到剪切板数据了。

Ps,所有View绘制完成后才会调用post()方法。

更多相关文章

  1. Android中Acition和Category常量表
  2. Android(安卓)处理空列表的方法(必看篇)
  3. TextView设置android:ellipsize="marquee"属性,无法实现跑马灯效
  4. Android(安卓)- webview通过js调用Android方法
  5. android当方法数超过64k时(android studio)
  6. android CursorAdapter的监听事件
  7. android中的数据存取-方式二:file(文件)
  8. Android菜单的几种方法
  9. Android注解式绑定控件

随机推荐

  1. Android(安卓)Studio--EditText属性
  2. Android(安卓)APK反编译详解(附图)
  3. android ListView 样式 item样式,条目样式
  4. Android系统移植与调试之------->Android
  5. Android(安卓)webView 正确的用法
  6. Android(安卓)面试题(二)Android基础篇
  7. 02_Android应用开发之Hello World【图解
  8. Android使用NFC模拟M卡实现 (一)
  9. Android(安卓)图形系统剖析
  10. android 面试3:如何将一个Activity设置成