版本:1.9.6.2

一、进程被杀之后没有做好数据恢复

现象

在激励视频播放之后按下home键退出,模拟进程被杀,再进入应用,会出现没有数据的情况

image

解决方法

debug进入Activity的之后可以看到如下结构:

unnamed.png

根据这个结构,我们通过Application入口反射,就能找到mActivities,在其中找到需要取消掉的TTRewardVideoActivity,就能在不侵入代码的情况下finish掉

private void clearTTRewardActivity(Application application) {

try {

Class applicationClass = Application.class;

Field mLoadedApkField = applicationClass.getDeclaredField("mLoadedApk");

mLoadedApkField.setAccessible(true);

Object mLoadedApk = mLoadedApkField.get(application);

Class> mLoadedApkClass = mLoadedApk.getClass();

Field mActivityThreadField = mLoadedApkClass.getDeclaredField("mActivityThread");

mActivityThreadField.setAccessible(true);

Object mActivityThread = mActivityThreadField.get(mLoadedApk);

Class> mActivityThreadClass = mActivityThread.getClass();

Field mActivitiesField = mActivityThreadClass.getDeclaredField("mActivities");

mActivitiesField.setAccessible(true);

Object mActivities = mActivitiesField.get(mActivityThread);

if (mActivities instanceof Map) {

@SuppressWarnings("unchecked")

Map arrayMap = (Map) mActivities;

for (Map.Entry entry : arrayMap.entrySet()) {

Object value = entry.getValue();

Class> activityClientRecordClass = value.getClass();

Field activityField = activityClientRecordClass.getDeclaredField("activity");

activityField.setAccessible(true);

Object o = activityField.get(value);

Activity activity = (Activity) o;

LogUtil.d("TTReward", "activity name = " + activity.getPackageName() + "," + activity.getLocalClassName());

if (TT_REWARD_ACTIVITY_NAME.equals(activity.getLocalClassName())) {

activity.finish();

}

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

二、申请权限会回到主任务栈

现象

在激励视频中推荐使用以下代码来获取imei以及定位权限:

ttAdManager.requestPermissionIfNecessary(context);

如果使用这行代码,在请求之后会回到应用的主任务栈中,对于一些使用了singleInstance或使用taskAffinity就是一个bug

如果不用,会发现在第一次使用激励视频的时候获取失败(提示错误码2001:没有广告),怀疑是在代码内部使用了初始化代码保存状态,除非进程重启否则不会再去动态检测权限是否获得。

点击进去看实现,发现是跳转进了一个Activity:

屏幕快照 2018-11-25 下午1.47.24.png

那个数字268435456其实就是Intent.FLAG_ACTIVITY_NEW_TASK,这个很好猜。

这样,我们可以继承自TTDelegateActivity,然后加上我们指定的任务栈即可。

解决

自己写一个Activity继承TTDelegateActivity,在清单中指定我们的任务栈,然后提供一个模仿方法即可。

屏幕快照 2018-11-25 下午1.53.00.png

sdk 今日头条_今日头条商业SDK(激励视频)的坑相关推荐

  1. python 今日头条 微头条_今日头条微头条范文-头条号的微头条你们都发些什么,该如何写?...

    头条号的微头条你们都发些什么,该如何写? 心灵相约头条号.呼唤着,努力着,拼搏着,它属于努力地人们,是传播正能量的家园.今天起要根扎头条号,写出优秀地原创作品.头条号的朋友们努力吧!用心血和汗水浇灌头 ...

  2. java爬取今日头条_今日头条抓取街拍图片数据集

    spider1: 抓取街拍页面的所有入口链接: 1.数据查看到,街拍页面需要的数据集都在data这个集合中,而data是整个数据集字典的一个键,data这个键又包括了一个list,list中是一个个字 ...

  3. python 今日头条 微头条_今日头条的入门,其实就是‘微头条’

    从前,我总觉得像公众号啊,百家号,今日头条啥的,这类平台太看重利益,影响心情. 也就导致,我曾经与566天前下载了今日头条,但也没怎么去运营,只是随便发几篇文,赚不到钱就卸载了. 最近,就有简友建议我 ...

  4. cocos creator 接QQ小游戏小程序RewardedVideoAd 激励视频广告sdk

    cocos creator 接QQ小游戏小程序RewardedVideoAd 激励视频广告sdk 开发者工具 0.1.26 版本开始支持调试广告组件 话说你们看完为什么不留言点赞? 首先,你需要初始化 ...

  5. ios 穿山甲广告联盟集成_今日头条发布穿山甲联盟 如何实现广告联盟模式进阶?...

    在广告主资源和流量主资源上,脱胎于今日头条的穿山甲联盟,根基牢固.目前,广告主层面,已覆盖29个一级行业116个细分行业,充足的广告资源保证优质的广告填充率.流量主层面,今日头条旗下全线产品国内总DA ...

  6. python 今日头条 微头条_头条号运营技巧:如何玩转微头条?

    今日头条依靠智能推荐独步天下,被BAT纷纷效仿.可是今日头条还不满足,久不久就放大招,"私信"功能被指拳打微信,"微头条"被指脚踢微博. 微头条是什么玩意呢? ...

  7. 头条是一款遵循材料设计(Material Design)的第三方今日头条客户端, 聚合了新闻/段子/图片/视频/头条号内容, 没有广告, 仅仅只有存粹的阅读, 不断完善中, 采用 MVP + RxJa

    Toutiao 项目地址:iMeiji/Toutiao  简介:头条是一款遵循材料设计(Material Design)的第三方今日头条客户端, 聚合了新闻/段子/图片/视频/头条号内容, 没有广告, ...

  8. 今日头条告今日油条赔 200 万,各大公司表示不服

    作者 | B哥 来源 | BAT(ID:batfun) 互联网圈的瓜总是出其不意. 去年一家卖油条的蹭上今日头条,开了家早餐店叫今日油条.不出意料,今日头条把今日油条给告了,索赔200万. 今日头条. ...

  9. 今日头条 mysql_今日头条的核心技术细节是什么?

    今日头条创立于2012年3月,到目前仅 6 年时间.从十几个工程师开始研发,到上百人,再到200余人.产品线由内涵段子,到今日头条,今日特卖,今日电影等产品线.一.产品背景 今日头条是为用户提供个性化 ...

  10. 今日头条起诉今日油条!后者还注册了“饼多多”和“快手抓饼”

    点击上方蓝色小字,关注"涛哥聊Python" 重磅干货,第一时间送达 来源:扩展迷EXTFANS 继"阿京腾百"商标"碰瓷"多家互联网大厂后 ...

最新文章

  1. AlexNet:深度卷积神经网络的ImageNet分类
  2. 支付宝当面付扫码支付支付后不回调_科普:支付宝刷脸支付流程介绍
  3. Caffe学习系列(19): 绘制loss和accuracy曲线
  4. 为什么需要动态SQL?
  5. python和lua哪个有前途_(转)LUA与python根本就不具有可比性
  6. c语言ox32左移一位的值,程序设计基础 (C)(32+32) 实验指导书.docx
  7. Request对象及其API应用实操
  8. 社交中的黄金法则,你要细细体会品味
  9. python_安装PIL/pillow
  10. LivePlayer.js免费直播、点播播放器如何自适应div宽高集成播放视频
  11. Linux 文件系统IO性能优化
  12. chrome浏览器的跨域设置
  13. 小李飞刀:SQL题目刷起来!
  14. CSS盒模型层次平面示意图和3D示意图
  15. 达内python就业班视频_达内python入门到精通全套视频教程
  16. 【计网CRC】模2除法求冗余码
  17. THREE.JS中常用的3种材质
  18. CPP2022-07-循环结构01
  19. IMDG产品功能扩展
  20. 《Better Performance at Lower Occupancy》解读

热门文章

  1. 大白话式粗浅地聊聊NLP语言模型
  2. 瑞云Rayvision渲染的原创动画《吃饭睡觉打豆豆》震撼来袭 ——创造产业历史,日点击量过200万次...
  3. TextView实现左边图片右边文字或 上面图片下面文字
  4. excel服务器 微信设置密码,如何用vba给excel工作簿批量设置添加打开密码? - EXCEL VBA - ExcelOffice【微信公众号:水星Excel】...
  5. halcon测量距离
  6. 当年绑架李嘉诚之子后,张子强与李嘉诚对话的细节
  7. 【一日一logo_day_19】sos
  8. 2016.8.26 动态规划及杂题选讲 [树形dp] [数论] [矩阵快速幂]
  9. 图扑软件数字孪生汽车生产线,赋能智慧工厂科学运维
  10. java8-常用stream操作(1)