Android Service启动到Activity
飞哥语录:心怀希望,就会充满力量!
从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相关推荐
- 一篇文章看明白 Android Service 启动过程
Android - Service 启动过程 相关系列 一篇文章看明白 Android 系统启动时都干了什么 一篇文章了解相见恨晚的 Android Binder 进程间通讯机制 一篇文章看明白 An ...
- android之启动桌面activity
主页面布局:layout\activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/r ...
- Android service 启动篇之 startService
系列博文: Android 中service 详解 Android service 启动篇之 startService Android service 启动篇之 bindService Android ...
- 【Android 启动过程】Android 应用启动流程 | Activity 启动流程
文章目录 一.Android 系统启动流程 二.Activity 启动流程 一.Android 系统启动流程 打开 Android 手机电源键后 , 先运行 BootLoader , 然后使用 Boo ...
- Android Service: 启动service, 停止service
[ 启动service ] 1. 定义Service类 2. 在manifest中注册 3. 在activity中启动 1. 定义Service类 @Override public IBinder o ...
- Android Service启动
image.png Service Service(服务)是一个后台运行的组件,执行长时间运行且不需要用户交互的任务.即使应用被销毁也依然可以工作.服务的两种启动状态 状态 描述 Started An ...
- Android service启动流程分析.
文章仅仅用于个人的学习记录,基本上内容都是网上各个大神的杰作,此处摘录过来以自己的理解学习方式记录一下. 参考链接: https://my.oschina.net/youranhongcha/blog ...
- android启动服务的生命周期,android Service启动运行服务 生命周期
Service Android中的service类似于windows中的service,service一般没有用户操作界面,它运行于系统中不容易被用户发觉, 可以使用它开发如监控之类的程序. 一.步骤 ...
- Android开机启动Activity或者Service方法
这段时间在做Android的基础开发,现在有一需求是开机启动,按照网上某些博文教程做了下,始终不成功,一开机总是提示所启动的应用程序意外终止,于是参考了Android SDK doc,终于解决问题,下 ...
最新文章
- Python中浮点数精度处理
- 2017年热度最高的十大技术类技能
- OpenCV离散傅立叶变换
- Python解释器有哪些?Python解释器种类
- 实验7 寻址方式在结构化数据访问总的应用
- 最后一周!导师推荐的转录组和可视化学习捷径
- 推荐]招商就象谈恋爱
- android广播代码汇总二__有序广播
- 让孩子见世面,到底有多重要
- JavaScript学习——判断数据类型总结(转)
- [HNOI2002]营业额统计 Splay tree入门题
- 七日瘦身汤绝妙配方 - 生活至上,美容至尚!
- 基于quartz的云调度中心实现
- S32K MCAL03-如何使用EB工具配置FlexCAN的波特率
- 最速下降法python_python实现最速下降法
- 用计算机刻盘,电脑怎么刻盘_怎么将电脑桌面的文件刻录到cd光盘
- 利普希茨连续(Lipschitz continuous)及其应用
- Android中m、mm、mmm、mma、mmma的区别
- 互联网专利战场急先锋-高智发明,微软苹果等撑腰
- 【IP技术】ipv4和ipv6是什么?
热门文章
- 中级职称计算机选几个模块,计算机职称考试正确选择模块的绝招
- Android 刻度尺的另类实现方式.
- 找不到文件或程序集名称System.Data.SqlServerCe...
- 什么样的IDC才符合国家标准?
- 这是一个很神奇的网站!
- Docker 安装nigix、tomcat、es+kibana和portainer可视化
- 迅为IMX6开发板Mfgtools工具单独烧写镜像-设备树Qt系统
- 新春贺礼:云和恩墨大讲堂期刊第二期
- php cms带专题,phpcms标签模板及专题模板的制作
- 辣椒app软件测试,辣椒视频(test flight)官方版