飞哥语录:心怀希望,就会充满力量!

从Service启动到Activity基本可以分为两类:
1.从自己应用的Service启动自己应用的Activity,即显式意图;
2.从自己应用的Service启动到其他应用的Activity,或者从别的应用的Service启动到自己应用的Activity,即隐式意图;

1.显式意图启动

下面为示例写法:

 Intent intent = new Intent(EmqttService.this, CallingActivity.class);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);

2.隐式意图启动

需要在manifest.xml中为该Activity配置<intent-filter>标签,为其配置action和category

    <activity android:name=".CallingActivity" >  <intent-filter>  <action android:name="com.call"></action>  <category android:name="android.intent.category.DEFAULT"/>  </intent-filter>  </activity>

在要启动的Service里这样写:

 Intent i = new Intent("com.call");  i.addCategory(Intent.CATEGORY_DEFAULT);  i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  startActivity(i);

注意“com.call”为要启动Activity的Action.

##3.为什么Android在Service 里面启动Activity要强制规定使用参数FLAG_ACTIVITY_NEW_TASK呢?

我们可以来做这样一个假设,我们有这样一个需求:
我们在电话本里面启动一个Service,然后它执行5分钟后,启动一个Activity
那么很有可能用户在5分钟后已经不在电话本程序里面操作了,有可能去上网,打开浏览器程序了。

5分钟后,此时当前的Task是浏览器的task,那么弹出Activity,如果这个Activity在当前Task的话,也就是浏览器的Task;那么用户就会觉得莫名其妙;因为弹出的Activity和浏览器在一个Task,本来这个Activity应该属于电话本的。

所以,对于Service而言,干脆强制定义启动的Activity要创建一个新的Task.

这种设计,我觉得还是比较合理的。

最后感谢参考文章:http://bbs.51cto.com/thread-1133875-1.html

Thanks all.

Android Service启动到Activity相关推荐

  1. 一篇文章看明白 Android Service 启动过程

    Android - Service 启动过程 相关系列 一篇文章看明白 Android 系统启动时都干了什么 一篇文章了解相见恨晚的 Android Binder 进程间通讯机制 一篇文章看明白 An ...

  2. android之启动桌面activity

    主页面布局:layout\activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/r ...

  3. Android service 启动篇之 startService

    系列博文: Android 中service 详解 Android service 启动篇之 startService Android service 启动篇之 bindService Android ...

  4. 【Android 启动过程】Android 应用启动流程 | Activity 启动流程

    文章目录 一.Android 系统启动流程 二.Activity 启动流程 一.Android 系统启动流程 打开 Android 手机电源键后 , 先运行 BootLoader , 然后使用 Boo ...

  5. Android Service: 启动service, 停止service

    [ 启动service ] 1. 定义Service类 2. 在manifest中注册 3. 在activity中启动 1. 定义Service类 @Override public IBinder o ...

  6. Android Service启动

    image.png Service Service(服务)是一个后台运行的组件,执行长时间运行且不需要用户交互的任务.即使应用被销毁也依然可以工作.服务的两种启动状态 状态 描述 Started An ...

  7. Android service启动流程分析.

    文章仅仅用于个人的学习记录,基本上内容都是网上各个大神的杰作,此处摘录过来以自己的理解学习方式记录一下. 参考链接: https://my.oschina.net/youranhongcha/blog ...

  8. android启动服务的生命周期,android Service启动运行服务 生命周期

    Service Android中的service类似于windows中的service,service一般没有用户操作界面,它运行于系统中不容易被用户发觉, 可以使用它开发如监控之类的程序. 一.步骤 ...

  9. Android开机启动Activity或者Service方法

    这段时间在做Android的基础开发,现在有一需求是开机启动,按照网上某些博文教程做了下,始终不成功,一开机总是提示所启动的应用程序意外终止,于是参考了Android SDK doc,终于解决问题,下 ...

最新文章

  1. Python中浮点数精度处理
  2. 2017年热度最高的十大技术类技能
  3. OpenCV离散傅立叶变换
  4. Python解释器有哪些?Python解释器种类
  5. 实验7 寻址方式在结构化数据访问总的应用
  6. 最后一周!导师推荐的转录组和可视化学习捷径
  7. 推荐]招商就象谈恋爱
  8. android广播代码汇总二__有序广播
  9. 让孩子见世面,到底有多重要
  10. JavaScript学习——判断数据类型总结(转)
  11. [HNOI2002]营业额统计 Splay tree入门题
  12. 七日瘦身汤绝妙配方 - 生活至上,美容至尚!
  13. 基于quartz的云调度中心实现
  14. S32K MCAL03-如何使用EB工具配置FlexCAN的波特率
  15. 最速下降法python_python实现最速下降法
  16. 用计算机刻盘,电脑怎么刻盘_怎么将电脑桌面的文件刻录到cd光盘
  17. 利普希茨连续(Lipschitz continuous)及其应用
  18. Android中m、mm、mmm、mma、mmma的区别
  19. 互联网专利战场急先锋-高智发明,微软苹果等撑腰
  20. 【IP技术】ipv4和ipv6是什么?

热门文章

  1. 中级职称计算机选几个模块,计算机职称考试正确选择模块的绝招
  2. Android 刻度尺的另类实现方式.
  3. 找不到文件或程序集名称System.Data.SqlServerCe...
  4. 什么样的IDC才符合国家标准?
  5. 这是一个很神奇的网站!
  6. Docker 安装nigix、tomcat、es+kibana和portainer可视化
  7. 迅为IMX6开发板Mfgtools工具单独烧写镜像-设备树Qt系统
  8. 新春贺礼:云和恩墨大讲堂期刊第二期
  9. php cms带专题,phpcms标签模板及专题模板的制作
  10. 辣椒app软件测试,辣椒视频(test flight)官方版