青岛Android培训
达内青岛山东中心

18300268127

热门课程

appA 调用 appB 的 Activity,这个 Task 是什么情况?

  • 时间:2018-03-29 09:55
  • 发布:青岛android培训
  • 来源:互联网

    1.Task & Back Tack
    由同一个应用启动的Activity默认都在同一个任务栈中(Task)
    任务栈的形式和学习C语言的栈是一样的遵循后进先出的原则,看图很好理解
    2.appA 调用 appB 的 Activity,这个 Task 是什么情况?
    默认情况
    appB的 Activity好像是嵌入到了appA的Task中,但是不影响appB的正常运行,appB有自己的Task
    FLAG_NEW_TASK:
    appB 的 Activity 不嵌入到appA 的Task中,而是加入到appB自己的Task
    FLAG_ACTIVITY_CLEAR_TOP:
    当Intent对象包含这个标记时,如果在栈中发现存在Activity实例,则清空这个实例之上的Activity,使其处于栈顶。
    FLAG_ACTIVITY_SINGLE_TOP:

    在使用默认的“standard”启动模式下,如果没有在Intent使用到FLAG_ACTIVITY_SINGLE_TOP标记,那么它将关闭后重建,如果使用了这个FLAG_ACTIVITY_SINGLE_TOP标记,则会使用已存在的实例

青岛android培训班

    3.如何获取当前屏幕Activity的对象?
    使用ActivityLifecycleCallbacks
    传送地址: Android 如何获取当前Activity实例对象?
    4.你知道onNewIntent吗?
    如果IntentActivity处于任务栈的顶端,也就是说之前打开过的Activity,现在处于onPause、onStop 状态的话,其他应用再发送Intent的话,执行顺序为:
    onNewIntent,onRestart,onStart,onResume.
    5.除了用Intent 去启动一个Activity,还有其他方法吗?
    使用adb shell am 命令
    am启动一个activity
    adb shell am start com.example.fuchenxuan/.MainActivity
    am发送一个广播,使用action
    adb shell am broadcast -a magcomm.action.TOUCH_LETTER
    6.Android Service与Activity之间通信的几种方式?
    通过Binder对象
    当Activity通过调用bindService(Intent service, ServiceConnection conn,int flags),得到一个Service的一个对象,通过这个对象我们可以直接访问Service中的方法。
    通过Broadcast Receiver(广播)的形式
    EventBus 是一个Android开源事件总线框架 后面我们会有专门的讲解。
    7.TaskAffinity 是什么?
    标识Activity任务栈名称的属性:TaskAffinity,默认为应用包名
    如果新Activity是透明主题时,旧Activity会不会走onStop

    不会!

    本篇文章是有青岛android培训班为您呈现,希望给您带来更多更好的文章

更多青岛android培训机构相关资讯,请扫描下方二维码

青岛android培训班

上一篇:Android 中的 Context, Activity,Appliction 有什么区别?
下一篇:andriod作用机理

马上预约七天免费体验课

姓名:

电话:

android培训之相关extjs

android的发展史

Appcompat实现Action Bar的兼容性处理

Android应用中使用及实现系统“分享”接口

选择城市和中心
贵州省

广西省

海南省

达内教育

有位老师想和您聊一聊