BroadcastReceiver 启动activity(在activity之外启动一个activity)
**
* 在BroadcastReceiver中启动Activity的问题
*
* 如果在BroadcastReceiver的onReceive()方法中如下启动一个Activity
* Intent intent=new Intent(context,AnotherActivity.class);
* context.startActivity(intent);
* 可捕获异常信息:
* android.util.AndroidRuntimeException:
* Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag.
* Is this really what you want?
* 它说明:在Activity的context(上下文环境)之外调用startActivity()方法时
* 需要给Intent设置一个flag:FLAG_ACTIVITY_NEW_TASK
*
* 所以在BroadcastReceiver的onReceive()方法中启动Activity应写为:
* Intent intent=new Intent(context,AnotherActivity.class);
* intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
* context.startActivity(intent);
*
*
* 之前描述了问题的现象和解决办法,现在试着解释一下原因:
* 1 在普通情况下,必须要有前一个Activity的Context,才能启动后一个Activity
* 2 但是在BroadcastReceiver里面是没有Activity的Context的
* 3 对于startActivity()方法,源码中有这么一段描述:
* Note that if this method is being called from outside of an
* {@link android.app.Activity} Context, then the Intent must include
* the {@link Intent#FLAG_ACTIVITY_NEW_TASK} launch flag. This is because,
* without being started from an existing Activity, there is no existing
* task in which to place the new activity and thus it needs to be placed
* in its own separate task.
* 说白了就是如果不加这个flag就没有一个Task来存放新启动的Activity.
*
* 4 其实该flag和设置Activity的LaunchMode为SingleTask的效果是一样的
*
*
* 如有更加深入的理解,请指点,多谢
*
*/
BroadcastReceiver 启动activity(在activity之外启动一个activity)相关推荐
- 1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程。2.编写一个程序,要求在第一个界面中输入两个数字,在第二个界面显示第一个界面两个数字的和。
1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程. 首先,我创建了一个MainActivity和SecondActivity两个Activity. ...
- [Android1.5]打开多个Activity,返回到第一个Activity的问题
前言 Android项目中一旦涉及到登录就基本会遇到这个问题:打开多个Activity之后再登录超时的情况下如何才能跳转到登录界面,参见帖子这里.暂时没有完美解决方案,本文是对该帖子的补充说明: 声明 ...
- 当前Activity跳转到另外一个Activity
当前Activity跳转到另外一个Activity Step1:创建firest_layout.xml文件. 添加一个Button: <Buttonandroid:id="@+id/b ...
- android activity跳转生命周期,Android中从一个Activity跳转到另一个Activity所经历的生命周期........
凡是Android开发人员都知道"Activity"是非常重要的:对其该"Activity"生命周期相信大家也比较熟悉了. 这篇文章主要探讨的是"从一 ...
- Android 从一个Activity跳转到另一个Activity获取第二个Activity的返回值
在做安卓开发的过程中,经常会在两个Activity之间传递数据,从第一个Activity传递数据到第二个Activity是很简单的,在第一个Activity中这样写代码 Intent intent = ...
- 由一个activity跳转到另一个activity
定义一个按钮,当点击的时候跳转到另一个activity的界面 1.新建第二个activity 2.在第二个Java源码处继承第一个activity,导入 3.在source中复写Oncreat方法 4 ...
- Android中点击按钮启动另一个Activity以及Activity之间传值
场景 点击第一个Activity中的按钮,启动第二个Activity,关闭第二个Activity,返回到第一个Activity. 在第一个Activity中给第二个Activity传递值,第二个Act ...
- Android零基础入门第77节:Activity任务栈和启动模式
2019独角兽企业重金招聘Python工程师标准>>> 通过前面的学习,Activity的基本使用都已掌握,接下来一起来学习更高级的一些内容. Android采用任务栈(Task)的 ...
- Activity 启动模式以及常见的启动Flag
提前致谢:感谢广大互联网大佬记录知识借鉴. 一.Activity的4种启动模式: 1.android:launchMode="standard" 标准启动模式.这种启动模式也是Ac ...
- Android中Activity的四种启动模式
每次看到这种专有词汇都十分佩服创造者的智慧,创造者一定和我一样都中二,我已然确信. 我写博客的目的,就是希望不断磨练自己,让自己能够不将一件简单的事情讲的复杂,让自己能将一件复杂的事情讲的简单.嘛嘛, ...
最新文章
- 字符指针,字符数组,双引号的字符串的区别与联系
- 同步、异步;阻塞、非阻塞
- 事物的级别_面试官问:MySQL锁与事物隔离级别你知道吗?
- 科大星云诗社动态20210208
- python表白程序exe_我喜欢你 抖音表白程序python版
- JQuery果然是神器,这里顺便测试一下我发现的那个漏洞!
- 《A First Course in Probability》-chape4-离散型随机变量-几种典型分布列
- p1218 Superprime Rib
- Kubernetes 部署 Mysql 8.0 数据库(单节点)
- 20190228 搭建Hadoop基础环境
- matlab在循环中保存jpg格式_Matlab如何循环读取文件
- 觉得Win 10不如WP好?微软确认可以降级
- 【图像检索】基于matlab GUI综合颜色和形状特征图像检索【含Matlab源码 719期】
- 210.课程表II(力扣leetcode) 博主可答疑该问题
- 麦克斯韦电磁场理论基础
- 导入matplotlib.pyplot as plt画图问题Matplotlib created a temporary config/cache directory at /tmp/matplotl
- 关于SiamRPN代码的一些要点
- The puzzle
- 计算机sumifs函数怎么操作,excel中SUMIFS函数的公式语法及使用方法教程
- 电脑python编程软件哪个好用_5个最好用的Python编程开发工具(IDE)分享
热门文章
- python select模块安装_python+selenium select下拉选择框定位处理方法
- asp.net 点击查询跳转到查询结果页面_个体户如何办理和查询定期定额业务?
- aws主机php环境搭建,亚马逊AWS上安装Nginx(Linux,CentOS环境)
- mysql注入漏洞语句_mysql注入sleep语句引发的拒绝服务
- python作者龟叔_龟叔和他的Python
- bootstraptable 列隐藏_bootstrapTable 隐藏某一列
- IO设备在OS中的权衡
- WebView的截屏实现
- Github 开源:使用控制器操作 WinForm/WPF 控件( Sheng.Winform.Controls.Controller)
- 微信公众号可快速创建“门店小程序” 不用开发