为了账号安全,请及时绑定邮箱和手机立即绑定

Android-深入Activity

难度初级
时长 1小时16分
学习人数
综合评分9.63
47人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.6 逻辑清晰
  • adb shell dumpsys activity 查看activity及task信息
    查看全部
  • intent传递图片
    查看全部
  • activity 启动模式
    查看全部
  • bunder传输数据 不能超过 0.5m 否则回报异常
    查看全部
  • adb shell dumpsys acctivity 查看当前手机的活动过的Activity
    查看全部
  • task
    查看全部
  • intent.putextra();
    查看全部
  • 传递对象的方法
    查看全部
  • intent activity之间传递数据
    查看全部
  • 1. Task stack可能包含来自不同进程的activities。 2. Activity通过设置android:process来设置所在进程,以:开头表明为私有进程,反之则为共有进程。 2. Activity启动模式:standard(每次在Back stack中创建新的activity),singleTop(若当前启动的activity就在Back stack顶部,则调用onNewIntent()方法,而不新建activity),singleTask(启动的activity若不在顶部,则将其之前的activity移除,并将自己放在顶部),singleInstance(启动的Activity放入单独的一个Task中)
    查看全部
  • 启动Activity的模式
    查看全部
  • singleInstance 这部分再说一下,图示是从MainActivity->FirstActivity->MainActivity->FirstActivity->MainActivity的顺序 (1)启动MainActivity(创建Task1),再启动FirstActivity的函数调用顺序为 MainActivity.onCreate()->MainActivity.onResume()启动FirstActivity MainActivity.onPause()->FirstActivity.onCreate(),同时创建新的Task2,->FirstActivity.onResume() 最后调用MainActivity.onStop() (2)从FirstActivity->MainActivity,函数调用顺序: FirstActivity.onPause()->MainActivity.onCreate(),这时又在Task1中创建了MainActivity的实例,最后调用FirstActivity.onStop() (3)MainActivity->FirstActivity,函数调用顺序: MainActivity.onPause()->FirstActivity.onNewIntent()->FirstActivity.onResume()->MainActivity.onStop() (4)按照这个顺序,一直到创建第三个MainActivity的实例,这个时候如果点击back键。 会先把Task1的MainActivity finish掉,最后finish掉Task2的FirstActivity。
    查看全部
  • Activity启动模式 1. Standard 启动一个activity时系统会创建这个activity的一个实例。一个activity可以被多次实例化,这几个实例可以属于一个task或者属于多个task;一个task可以有多个实例。如果在一个Task中,某activity自己启动自己,就会再次创建一个实例,启动几次创建几个。 2. singleTop 如果一个activity的实例处于栈顶的位置,而且此activity的launchMode为“singleTop”,那么它只能有一个实例在栈顶,即如果它在栈顶自己启动自己将不会创建该activity的实例,而是在原来的实例上调用onNewIntent(),传入一个新的intent。 重新启动该activity的对比: (1)standard:onPause()->onCreate()->onResume() (2)singleTop: onPause()->onNewIntent()->onResume(),而且在调用onNewIntent()收到一个新intent之前,activity会一直paused 3. singleTask 指定launchMode为singleTask的activity只能在Task中存在一个实例。如果它已经存在,再次启动时将会调用它的onNewIntent(),传入intent。除此之外,(重要的是)它还会把自己置于栈顶,并且把其他它之上的activity全部finish()掉。当前要除去最开始栈底的MainActivity。 假设两个activity A、B,B如果已经存在一个实例,且launchMode为singleTask。如果再从A->B,函数调用顺序应该为: A.onPause()->B.onNewIntent()->B.onResume()->A.onStop()->A.onDestory() 4. singleInstance(单实例) 和singleTask很像,不一样的地方在于: (1)第一次启动此activity,将会新创建一个task,此task中只有此一个activity (2)如果已经存在此activity实例,再次启动时,调用onNewIntent(),而不是onCreate(),这一点和singleTask很像
    查看全部
  • Task和BackStack概念 1. 启动一个app,framework都会为这个app分配一个Task,有对应的TaskID和stack,然后在这个APP中所有的activity都共用一个TaskID和stack。 2. 当从一个app的进程跳转到另一个app进程时,还是在同一个task中,这就是Task允许跨进程间调用。 通过在manifest中声明activity "android:process=XXX"可以指定这个activity为另一个进程 3. Back Stack 一个Task就是一系列的activity的集合,这些activity以打开的顺序放入一个stack中,最后打开的activity最先出来。对于一个app来说,main activity就在栈顶的位置。 在一个app中可能会调用其他app的activity,但即使两个activity不在同一个APP中,但是其TaskID是同一个,属于同一个Task Stack file:///D:/software/Eclipse/adt-bundle-windows-x86-20140702/adt-bundle-windows-x86-20140702/sdk/android_sdk_docs_offline_20/docs/guide/components/tasks-and-back-stack.html 4. android中的多任务 假设启动了APP1,对应创建了一个Task A,它有三个activity。然后回到home screen,启动APP2,对应创建了一个Task B。此时,Task A的activity虽然全部stop了,但是Task A的stack还是完整存在的。然后可以通过回到home screen或点击recent apps启动Task A,它的activity回到前台。 5. dumpsys activity (1)running activities部分可以查看当前正在运行的activity (2)mFocusedActivity可以查看正在获取焦点的activity (3)Recent tasks可以查看最近的一些任务
    查看全部
  • 大数据传递
    查看全部

举报

0/150
提交
取消
课程须知
需要学完<<Android-重识Activity>>
老师告诉你能学到什么?
Activity的Task和Back Stack Activity启动模式 Activity之间的数据交换 Activity之间传递大数据的问题

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!