zoukankan      html  css  js  c++  java
  • 启动Activity的形式

    问:为什么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

  • 相关阅读:
    导出表结构
    smarty cache
    浏览器插件
    互联网技术网站介绍
    目录拷贝
    sphinx搜索不到
    powerdesigner 导出数据库表结构
    PowerDesigner 连接 mysql
    update join
    ClipboardJS的坑,
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/8351864.html
Copyright © 2011-2022 走看看