**
 * 在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. 1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程。2.编写一个程序,要求在第一个界面中输入两个数字,在第二个界面显示第一个界面两个数字的和。

    1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程. 首先,我创建了一个MainActivity和SecondActivity两个Activity. ...

  2. [Android1.5]打开多个Activity,返回到第一个Activity的问题

    前言 Android项目中一旦涉及到登录就基本会遇到这个问题:打开多个Activity之后再登录超时的情况下如何才能跳转到登录界面,参见帖子这里.暂时没有完美解决方案,本文是对该帖子的补充说明: 声明 ...

  3. 当前Activity跳转到另外一个Activity

    当前Activity跳转到另外一个Activity Step1:创建firest_layout.xml文件. 添加一个Button: <Buttonandroid:id="@+id/b ...

  4. android activity跳转生命周期,Android中从一个Activity跳转到另一个Activity所经历的生命周期........

    凡是Android开发人员都知道"Activity"是非常重要的:对其该"Activity"生命周期相信大家也比较熟悉了. 这篇文章主要探讨的是"从一 ...

  5. Android 从一个Activity跳转到另一个Activity获取第二个Activity的返回值

    在做安卓开发的过程中,经常会在两个Activity之间传递数据,从第一个Activity传递数据到第二个Activity是很简单的,在第一个Activity中这样写代码 Intent intent = ...

  6. 由一个activity跳转到另一个activity

    定义一个按钮,当点击的时候跳转到另一个activity的界面 1.新建第二个activity 2.在第二个Java源码处继承第一个activity,导入 3.在source中复写Oncreat方法 4 ...

  7. Android中点击按钮启动另一个Activity以及Activity之间传值

    场景 点击第一个Activity中的按钮,启动第二个Activity,关闭第二个Activity,返回到第一个Activity. 在第一个Activity中给第二个Activity传递值,第二个Act ...

  8. Android零基础入门第77节:Activity任务栈和启动模式

    2019独角兽企业重金招聘Python工程师标准>>> 通过前面的学习,Activity的基本使用都已掌握,接下来一起来学习更高级的一些内容. Android采用任务栈(Task)的 ...

  9. Activity 启动模式以及常见的启动Flag

    提前致谢:感谢广大互联网大佬记录知识借鉴. 一.Activity的4种启动模式: 1.android:launchMode="standard" 标准启动模式.这种启动模式也是Ac ...

  10. Android中Activity的四种启动模式

    每次看到这种专有词汇都十分佩服创造者的智慧,创造者一定和我一样都中二,我已然确信. 我写博客的目的,就是希望不断磨练自己,让自己能够不将一件简单的事情讲的复杂,让自己能将一件复杂的事情讲的简单.嘛嘛, ...

最新文章

  1. 字符指针,字符数组,双引号的字符串的区别与联系
  2. 同步、异步;阻塞、非阻塞
  3. 事物的级别_面试官问:MySQL锁与事物隔离级别你知道吗?
  4. 科大星云诗社动态20210208
  5. python表白程序exe_我喜欢你 抖音表白程序python版
  6. JQuery果然是神器,这里顺便测试一下我发现的那个漏洞!
  7. 《A First Course in Probability》-chape4-离散型随机变量-几种典型分布列
  8. p1218 Superprime Rib
  9. Kubernetes 部署 Mysql 8.0 数据库(单节点)
  10. 20190228 搭建Hadoop基础环境
  11. matlab在循环中保存jpg格式_Matlab如何循环读取文件
  12. 觉得Win 10不如WP好?微软确认可以降级
  13. 【图像检索】基于matlab GUI综合颜色和形状特征图像检索【含Matlab源码 719期】
  14. 210.课程表II(力扣leetcode) 博主可答疑该问题
  15. 麦克斯韦电磁场理论基础
  16. 导入matplotlib.pyplot as plt画图问题Matplotlib created a temporary config/cache directory at /tmp/matplotl
  17. 关于SiamRPN代码的一些要点
  18. The puzzle
  19. 计算机sumifs函数怎么操作,excel中SUMIFS函数的公式语法及使用方法教程
  20. 电脑python编程软件哪个好用_5个最好用的Python编程开发工具(IDE)分享

热门文章

  1. python select模块安装_python+selenium select下拉选择框定位处理方法
  2. asp.net 点击查询跳转到查询结果页面_个体户如何办理和查询定期定额业务?
  3. aws主机php环境搭建,亚马逊AWS上安装Nginx(Linux,CentOS环境)
  4. mysql注入漏洞语句_mysql注入sleep语句引发的拒绝服务
  5. python作者龟叔_龟叔和他的Python
  6. bootstraptable 列隐藏_bootstrapTable 隐藏某一列
  7. IO设备在OS中的权衡
  8. WebView的截屏实现
  9. Github 开源:使用控制器操作 WinForm/WPF 控件( Sheng.Winform.Controls.Controller)
  10. 微信公众号可快速创建“门店小程序” 不用开发