启动Activity的形式
启动 Activity 形式
2023-09-14 08:59:10 时间
问:为什么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中
相关文章
- 2012年IDC行业十大事件评选启动
- [Android UI] Service里面启动Activity和Alertdialog
- IOS8添加启动图
- spring 启动属性注入
- 44、网页启动Activity,网页传值Activity
- Android开机启动Activity或者Service方法(转载)
- activity之Activity启动流程
- 大叔经验分享(89)docker启动openjdk执行jmap报错
- 启动屏幕保护程序
- Android开机动画启动流程
- 启动Activity的形式
- SAP Fiori Application Generator 在 Visual Studio Code 启动时遇到的错误消息
- Android 10.0以后高版本后台启动Activity的方法
- Activity的启动模式
- 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | Hook 点分析 )
- 【Android 插件化】Hook 插件化框架 ( 从 Hook 应用角度分析 Activity 启动流程 二 | AMS 进程相关源码 | 主进程相关源码 )
- 【Android 应用开发】Activity 返回堆栈管理 ( 阶段总结 | 任务栈管理 | 返回堆栈 | 清除返回堆栈 | 亲和性 | 启动模式补充 | standard | singleTop )
- Ubuntu命令行快捷启动Pycharm
- 兔子--Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK
- docker-compose启动consul
- Activity启动流程分析
- Kubernetes Kubelet Pod 启动流程