版本: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("mActivi