启动Activity的形式
启动 Activity 形式
2023-09-14 09:00:41 时间
问:为什么service里面startActivity抛异常,activity不会?
No1:
启动activity有两种形式:
1)直接调用Context类的startActivity方法;这种方式启动的Activity没有Activity栈,因此不能以standard方式启动,必须加上FLAG_ACTIVITY_NEW_TASK这个flag,服务就是通过Context调用
2)调用被Activtiy类重载过的startActivity方法,通常在我们的Activity中直接调用这个方法就是这种形式
No2:
Activity继承了ContextThemeWrapper,Service继承了ContextWrapper
No3:
ContextWrapper源码分析:
Context.startActivity-->
ContextImpl.startActivity-->
Instrumentation.execStartActivity-->
ActivityManagerNative.getDeault().startActivity-->
其中ContextImpl中判断是否为FLAG_ACTIVITY_NEW_TASK标记
No4:
Activity.startActivity-->
Activity.startActivityForResult-->
Instrumentation.execStartActivity-->
No5:
简单成一句话,就是系统要知道被启动的Activtiy应该放在那个task中
相关文章
- [Android UI] Service里面启动Activity和Alertdialog
- 解决Linux环境下Tomcat启动卡住问题
- Android activity四种启动模式完全解析
- DELL平板如何安装WIN10系统 -PE启动问题
- NET插件系统之四——提升系统搜索插件和启动速度的思考
- SQL SERVER 2000 迁移后SQL SERVER代理服务启动错误分析
- 启动Activity的形式
- 解决apache启动错误"httpd:Could not reliably determine
- activity之启动流程
- Activity启动过程
- Activity的启动
- Activity启动模式
- 分布式框架seata启动命令
- ABAP SOAMANAGER启动方式,以及暴露的函数function module,以web service方式执行的运行时细节
- Atitit. 软件GUI按钮与仪表盘--web服务器区--获取apache配置文件路径 linux and apache的启动、停止、重启
- 为什么SAP GUI里的传统事务码能通过Fiori Launchpad启动
- Android【报错】java.lang.RuntimeException: Unable to start activity Activity无法打开的问题
- 【Android笔记16】Android四大组件之Activity启动和关闭以及传递数据
- Android kotlin 进阶之Activity的启动顺序入出栈(包括标题栏左边的返回键和软返回键)
- Android 10.0以后高版本后台启动Activity的方法
- Android 10.0以上后台不能启动Activity的解决方法
- Windows和linux双系统——改动默认启动顺序
- 【Android 插件化】Hook 插件化框架 ( 从 Hook 应用角度分析 Activity 启动流程 二 | AMS 进程相关源码 | 主进程相关源码 )
- 【Android 安全】深思数盾 Virbox 加固应用 ( 购买加固服务 | 下载加固软件 | 启动加固软件 | 函数 VMP 壳设置 | 加密选项 | 资源加密 | SO 保护 )
- linux下 redis 启动
- Android - 通过Intent启动Activity
- Android创建启动画面
- Activity启动模式 及 Intent Flags 与 栈 的关联分析
- Linux下设置字符界面开机启动及系统启动流程介绍
- 启动WIFI时:equest firmware failed with error 0xfffffffe ifconfig: SIOCSIFFLAGS: Operation not permitted
- 启动另一个Activity、Service、应用程序
- 打印Activity任务栈脚本:adb shell dumpsys activity