Android获取粘贴板内容

【Android获取粘贴板内容】获取黏贴版内容的相关代码需要在UiThread上运行,所以没法即时获得数据并返回。
最后的解决办法是,在每次onResume的时候获取黏贴板的内容并保存,程序需要黏贴板内容时直接返回保存的这个值

public void onResume(Activity page) { // 因为获取黏贴板的内容需要在UiThread上运行,所以没法直接获取到(因为return的时候runnable里的内容很可能还没执行完) // 故改为在OnResume的时候保存粘贴板里的内容,然后直接返回保存的内容 getPasteString(); }// 从黏贴板获取数据 private void getPasteString() { // 获取并保存粘贴板里的内容 try { activity.runOnUiThread(new Runnable() {@Override public void run() { ClipboardManager clipboard = (ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE); ClipData clipData = https://www.it610.com/article/clipboard.getPrimaryClip(); if (clipData != null && clipData.getItemCount()> 0) { CharSequence text = clipData.getItemAt(0).getText(); pasteString = text.toString(); Log.d(TAG, "getFromClipboard text=" + pasteString); } } }); } catch (Exception e) { Log.e(TAG, "getFromClipboard error"); e.printStackTrace(); } }// 复制到粘贴板 public class copyToClipboard implements Method {@Override public String Execute(String args, String callBack) {try { final String argsString = args; activity.runOnUiThread(new Runnable() {@Override public void run() { ClipboardManager clipboard = (ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE); ClipData clipData = https://www.it610.com/article/ClipData.newPlainText("text", argsString.trim()); clipboard.setPrimaryClip(clipData); } }); } catch (Exception e) { e.printStackTrace(); } return ""; } }

    推荐阅读