找不到病根真是让人愁白了头;

今天写了一个startActivityForResult,开启一个Activity并拿到返回的结果,但是startActivityForResult刚走,onActivityResult就立即响应了,这我要这个onActivityResult有何用;

来看开启代码:

                        Intent intaentPermission = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
intaentPermission.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intaentPermission.setData(Uri.parse( "package:"+getPackageName()));
startActivityForResult(intaentPermission,windowHintStartPermission);

这个是回调代码:

   @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == windowHintStartPermission){
if (Build.VERSION.SDK_INT >= 23) {
if (!Settings.canDrawOverlays(getActivity())) {
UIHelper.showToast("您未开启悬浮窗权限,遥控正在后台执行");
}else {
Intent intent = new Intent(getActivity(), TelecontrolQueryService.class);
intent.putExtra("id", "");
getActivity().startService(intent);
} }else {
Intent intent = new Intent(getActivity(), TelecontrolQueryService.class);
intent.putExtra("id","");
getActivity().startService(intent);
}
}
}

我真是日了狗了,开启代码刚执行结束,回调代码就走了;

来、划重点了:

经排查,发现这个提前回调跟Activity的启动模式有关(launchMode),举个栗子:Activity1使用startActivityForResult开启Activity2,Activity2的launchMode如果不是标准模式,就会出现提前回调的问题,onActivityResult立即执行;

我的解决方法:

                        Intent intaentPermission = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
// intaentPermission.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //把启动模式注释掉
intaentPermission.setData(Uri.parse( "package:"+getPackageName()));
startActivityForResult(intaentPermission,windowHintStartPermission);

还有就是,不要getActivity().startActivityForResult();在Fragment中开启Activity前面不要加getActivity(). ;不然你的onActivityResult方法会不执行;

Fragment onActivityResult提前响应,startActivityForResult执行后立即响应onActivityResult的解决方法的更多相关文章

  1. 【jquery】ajax 请求成功后新开窗口被拦截解决方法

    问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢? 分析: 浏览器之所以 ...

  2. spring定时任务执行两次的原因与解决方法

    spring定时任务,本地执行一次,放到服务器上后,每次执行时会执行两次,原因及解决办法. http://blog.csdn.net/yaobengen/article/details/7031266 ...

  3. 网站启动SSL, http变为https后,session验证码错误解决方法

    网站启动SSL, http变为https后,session验证码错误解决方法   最近公司需要后台启动安全证书,证书安装完毕后,后台老提示 验证码错误,经过几天的研究,此问题已经得到有效解决,现把方法 ...

  4. 安装Wamp后 Apache无法启动的解决方法

    安装Wamp后 Apache无法启动的解决方法,网上的解决方案可以说是五花八门,有些说了一大推,一点作用都起不到. 其实解决方法只需两步: 1.安装路径不能包含有中文,这个我不知道为什么,总之如果安装 ...

  5. 安装Wamp后 Apache无法启动的解决方法

    安装Wamp后 Apache无法启动的解决方法,网上的解决方案可以说是五花八门,有些说了一大推,一点作用都起不到. 其实解决方法只需两步: 1.安装路径不能包含有中文,这个我不知道为什么,总之如果安装 ...

  6. 宝塔控制面板创建ftp后链接不上的解决方法

    很多的新手在安装宝塔面板并且创建完ftp管理后链接ftp居然链接不上?有许多朋友都不知道本站q302博客也是基于宝塔控制面板管理的,本站在安装网站完成后也和你们一样ftp链接不上,后面经过多次测试之后 ...

  7. 关于protel 99se 汉化后某些菜单消失的解决方法

    本人在使用protel 99se 画PCB时,遇到了好些问题,通过网上查资料基本都解决了. 下面给大家分享 关于protel 99se 汉化后某些菜单消失的解决方法. 其他的许多看不见的菜单也可以自己 ...

  8. 【Navicat】使用navicat执行sql 查询速度很慢解决方法

    ========================== Navicat 远程连接Mysql执行普通sql速度慢问题: 场景: navicat可以连接上 远程服务器的mysql.但是在navicat执行最 ...

  9. 【Qt开发】QScrollArea添加布局后没有出现滚动条的解决方法

    [Qt开发]QScrollArea添加布局后没有出现滚动条的解决方法 标签:[Qt开发] 说明:尝试利用滚动区域显示多张图片,为了能够动态地往滚动区域贴图,为滚动区域设置了布局,然后通过布局来添加wi ...

随机推荐

  1. mina基础知识整理

    一.      简介: Apache Mina Server 是一个网络通信应用框架,Mina 可以帮助我们快速开发高性能.高扩展性的网络通信应用,Mina 提供了事件驱动.异步(Mina 的异步 I ...

  2. 获取TypeError:__init __()缺少1个需要的位置参数:'on_delete'当试图添加父表后面的子表

    解决办法:https://stackoverflow.com/questions/44026548/getting-typeerror-init-missing-1-required-position ...

  3. Zookeeper Ha集群简介+jdbcClient访问Ha集群环境

    Hadoop-HA机制HA概述high available(高可用) 所谓HA(high available),即高可用(7*24小时不中断服务). 实现高可用最关键的策略是消除单点故障.HA严格来说 ...

  4. C/C++中带可变参数的函数

    1.带可变参数的函数由来 当函数中的参数个数不确定时,这时候就需要带可变参数的函数! 如我们经常使用的C库函数printf()实际就是一个可变参数的函数, 其原型为: int printf( cons ...

  5. PHP扩展开发:第一个扩展

    在上一篇文章<PHP扩展开发:安装PHP>我们已经将开发PHP扩展的PHP环境安装成功,那么接下来采用最简单直接的方式创建第一个扩展. 我们先假设业务场景,是需要有这么一个扩展,提供一个叫 ...

  6. sql server 拼接字段

    方式一: --select @p_AllPARTOFCHECK = (select CAST(t.PARTOFCHECK as varchar)+'|' from QUEUEDETAIL t wher ...

  7. Azure REST API (4) 在Python环境下,使用Azure REST API

    <Windows Azure Platform 系列文章目录> 之前遇到的项目中,客户需要在Python环境下,监控Azure VM的CPU利用率,在这里简单记录一下. 笔者的环境是Win ...

  8. IIS7 UNC File caching issue

    You have to either choose dir-monitoring and file-change-notification with its drawback of using SMB ...

  9. vagrant 虚拟机中安装 lnamp 环境

    转载自 :http://git.oschina.net/apanly/mooc/tree/master/vagrant 替换源 sudo cp /etc/apt/sources.list /etc/a ...

  10. DS图遍历--广度优先搜索

    题目描述 代码框架如下: 输入 第一行输入t,表示有t个测试实例 第二行输入n,表示第1个图有n个结点 第三行起,每行输入邻接矩阵的一行,以此类推输入n行 第i个结点与其他结点如果相连则为1,无连接则 ...