最近在做一个分享得红包活动,要求监听剪贴板的数据,当剪贴板含有特定的活动信息时,跳转到对应的活动页面。

传统的监听剪贴板数据的方式是在ClipboardManager中添加OnPrimaryClipChangedListener来实现监听剪贴板数据的改动,而我们的场景是用户在社交软件中复制文字,打开我们App的时候跳转指定活动页面,这里可以取个巧,直接在App回到前台的时候去读取剪贴板数据。

判断App回到前台目前有好几种方式,这里有个判断程序是否在后台的库。我选的是通过在Application中注册ActivityLifecycleCallbacks来监听Activity状态来判断程序是否在后台,直接上代码:

// Application onCreate() 中注册

registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {

private int activityCount;

@Override

public void onActivityCreated(Activity activity, Bundle savedInstanceState) {

}

@Override

public void onActivityStarted(Activity activity) {

activityCount++;

if (activityCount == 1) { // 应用回到前台

// 获取剪贴板数据

String content = null;

ClipboardManager cm = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

try {

ClipData data = cm.getPrimaryClip();

ClipData.Item item = data.getItemAt(0);

content = item.getText().toString();

} catch (Exception e) {

e.printStackTrace();

}

if (content != null) {

// 执行我们的操作

...

// 清除剪贴板

ClipData clip = ClipData.newPlainText("", "");

cm.setPrimaryClip(clip);

}

}

}

@Override

public void onActivityResumed(Activity activity) {

}

@Override

public void onActivityPaused(Activity activity) {

}

@Override

public void onActivityStopped(Activity activity) {

activityCount--;

}

@Override

public void onActivitySaveInstanceState(Activity activity, Bundle outState) {

}

@Override

public void onActivityDestroyed(Activity activity) {

}

});

android剪贴板数据来源,Android判断程序回到前台并获取剪贴板数据相关推荐

  1. 解决QT接受串口数据时数据更新不及时,串口数据太多导致程序界面崩溃,串口接收数据过快等问题

    1.问题背景 最近在使用上位机测试传感器接受数据是否正常,发现了很多问题,由于没有系统的学过Qt,用到什么库就学什么库,导致库中的函数很多不清晰,产生了标题中的一系列问题,经过不断的尝试,终于解决上述 ...

  2. python分析股票数据_Python股票分析系列——系列介绍和获取股票数据.p1

    本系列转载自youtuber sentdex博主的教程视频内容 https://www.youtube.com/watch?v=19yyasfGLhk&index=4&list=PLQ ...

  3. 小程序js中data获取服务器数据,微信小程序 获取javascript 里的数据

    微信小程序 获取javascript 里的数据 wxml如何获取js里的数据 例: wxml里: {{txt}} 通过上面的{{txt}}可以对应获取js里data下定义的txt的值 js里: dat ...

  4. 微信小程序怎么把获取的值传到引用组件内_微信小程序如何将接口获取的数据传递给自定义组件...

    2019-07-11 回答 不知道你是什么意思.帮你改了下 class program { static int n = 4; int i, m; dsd[] a = new dsd[n]; publ ...

  5. php更新用户数据为空,php – Instagram实时更新标签 – 获取空数据,为什么?

    Heloo, 我正在开发一个项目,我需要从Instagram获得某些标签的实时更新. 这是我创建订阅的代码 $client_id = 'MOJID'; $client_secret = 'MOJIDS ...

  6. vue 后端数据成功返回 页面不渲染_vue能获取到数据数据却渲染不到页面上,为什么?...

    问题描述 从后台可以拿到数据,并打印在控制台但是就是渲染不到页面,我也不知道是为什么,感觉都正常 问题出现的环境背景及自己尝试过哪些方法 尝试用let _this = this来代替this但是还是没 ...

  7. java中的数据解析是_Java从网络中请求获取JSon数据以及解析JSON数据----(自创,请注明)...

    Json数据是比较常用的数据类型解析,优点就不多说啦.来看看方法: public static JSONObject getJsonObject(String url) { JSONObject js ...

  8. android 内置滤镜,Android滤镜开发(一) 开篇:关于滤镜

    滤镜 一般是由玻璃,树脂和聚碳酸酯等制成的物体,用来处理相机等传感器受到外界环境的影响,或者达到某种视觉效果.对于现在数字时代的图像,我们可以通过算法处理来达到以前镜片的效果 Android平台上的滤 ...

  9. 【Android应用开发】Android Studio 简介 (Android Studio Overview)

    一. Intelij IDEA 环境简介 Android Studio 来源 : Android Studio 是 Intelij IDEA 的免费版本 + Android SDK 集成的; -- I ...

  10. Android数据手册02:android.permission权限请求汇总

    在Android开发中,当程序执行需要操作安全敏感项时,必须在androidmanifest.xml中声明相关权限请求. 比如,声明拨打电话的权限请求方法如下: 1 <uses-permissi ...

最新文章

  1. HBase结合MapReduce批量导入
  2. IDEA整合 ssm的详细demo(使用maven)
  3. 旅游O2O“三国杀”竞技:携程系「守」、飞猪「望」、美团「攻」
  4. Windows:将cmd命令行添加到右键中方法
  5. 有没有五金产品展开计算机软件,拆单软件功能介绍
  6. 显示器视力保护色设置方法
  7. Win10系统隐藏文件资源管理器中的3D对象等七个文件夹
  8. Thumbnails压缩图片
  9. 固定偏置放大电路为何不能保证静态工作点的稳定性?
  10. 微信android返回上一页位置,解决微信内置浏览器返回上一页强制刷新问题方法...
  11. git如何安装aur_Linux┊一个好用的AUR工具yaourt | 简单.生活
  12. 永磁同步电机矢量控制中的双闭环是什么意思_STM32 TALK | 无感FOC方案原理机器控制难点分析...
  13. 计算机课拔线头检讨书,实验室检讨书.doc
  14. 无意间看了程序员的桌面……
  15. 中位数--《算法竞赛进阶指南》(货仓选址和七夕祭问题详解)
  16. 【Python技能树共建】Beautiful Soup
  17. (附源码)springboot中学成绩管理 毕业设计100854
  18. 关于爬取网页的时候,抓不到元素,报没有这样元素的错误
  19. C# JSON、XML互转
  20. JS获取上个月与下个月

热门文章

  1. 3DMAX导出网格顶点切向量
  2. caxa齿轮零件图_CAXA软件如何快速地画一个齿轮?
  3. 双网卡上网冲突解决_【优特普.安防百科】交换机组网最常见的8大故障及解决方式...
  4. donet学习笔记10(c#基础)
  5. 快手上推广一个月要多少钱,快手短视频广告投放一年多少钱
  6. 腾讯测试岗位的面试题合集,请查收
  7. 模拟软件-OLED及Solar cell的模拟软件(Absorption模块)-[Setfos]
  8. tensorflow.js基本使用 图标识别(八)
  9. 赚了20亿美元GandCrab勒索病毒家族的故事
  10. 开源中文分词FudanNLP