除非该 activity 不是被用户主动销毁的,通常 onSaveInstanceState() 只适合用于保存一些临时性的状态,而 onPause() 适合用于数据的持久化保存。
3.3 onSaveInstanceState() 被执行的场景系统不知道你按下 HOME 后要运行多少其他的程序,自然也不知道 activity A 是否会被销毁
因此系统都会调用 onSaveInstanceState() ,让用户有机会保存某些非永久性的数据。以下几种情况的分析都遵循该原则:
当用户按下 HOME 键时
长按 HOME 键,选择运行其他的程序时
锁屏时
从 activity A 中启动一个新的 activity 时
屏幕方向切换时
3.4 两个 Activity 之间跳转时必然会执行的方法一般情况下比如说有两个 activity , 分别叫 A , B ,当在 A 里面激活 B 组件的时候, A 会调用 onPause() 方法,然后 B 调用 onCreate() , onStart() , onResume() 。
这个时候 B 覆盖了窗体, A 会调用 onStop() 方法. 如果 B 是个透明的,或者 是对话框的样式, 就不会调用 A 的 onStop() 方法。
3.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
3.6 scheme 跳转协议 3.6.1 定义服务器可以定制化跳转 app 页面
app 可以通过 Scheme 跳转到另一个 app 页面
可以通过 h5 页面跳转 app 原生页面
3.6.2 协议格式:qh 代表 Scheme 协议名称
test 代表 Scheme 作用的地址域
8080 代表改路径的端口号
/goods 代表的是指定页面(路径)
goodsId 和 name 代表传递的两个参数
3.6.3 Scheme使用定义一个 Scheme
获取 Scheme 跳转的参数
调用方式
原生调用
html调用
判断某个Scheme是否有效
关于scheme跳转协议,可以查看下面的博客,站在巨人的肩膀上,才能看得更远
Android产品研发(十一)-->应用内跳转Scheme协议
相同:Activity 和 Application 都是 Context 的子类。