Activity 的 36 大难点,你会几个?「建议收藏」 (5)

除非该 activity 不是被用户主动销毁的,通常 onSaveInstanceState() 只适合用于保存一些临时性的状态,而 onPause() 适合用于数据的持久化保存。

3.3 onSaveInstanceState() 被执行的场景

onSaveInstanceState() 被执行的场景

系统不知道你按下 HOME 后要运行多少其他的程序,自然也不知道 activity A 是否会被销毁

因此系统都会调用 onSaveInstanceState() ,让用户有机会保存某些非永久性的数据。以下几种情况的分析都遵循该原则:

当用户按下 HOME 键时

长按 HOME 键,选择运行其他的程序时

锁屏时

从 activity A 中启动一个新的 activity 时

屏幕方向切换时

3.4 两个 Activity 之间跳转时必然会执行的方法

两个 Activity 之间跳转时必然会执行的方法

一般情况下比如说有两个 activity , 分别叫 A , B ,当在 A 里面激活 B 组件的时候, A 会调用 onPause() 方法,然后 B 调用 onCreate() , onStart() , onResume() 。

这个时候 B 覆盖了窗体, A 会调用 onStop() 方法. 如果 B 是个透明的,或者 是对话框的样式, 就不会调用 A 的 onStop() 方法。

3.5 用 Intent 去启动一个Activity 之外的方法

用 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 跳转协议

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

Activity 的 36 大难点,你会几个?「建议收藏」

获取 Scheme 跳转的参数

Activity 的 36 大难点,你会几个?「建议收藏」

调用方式

原生调用

Activity 的 36 大难点,你会几个?「建议收藏」

html调用

Activity 的 36 大难点,你会几个?「建议收藏」

判断某个Scheme是否有效

Activity 的 36 大难点,你会几个?「建议收藏」

关于scheme跳转协议,可以查看下面的博客,站在巨人的肩膀上,才能看得更远
Android产品研发(十一)-->应用内跳转Scheme协议


# 4. Context 4.1 Context , Activity , Appliction 的区别

Context, Activity, Appliction 的区别

相同:Activity 和 Application 都是 Context 的子类。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxfgy.html