Android 开发艺术探索 学习笔记 Activity
2017-08-28 19:31
483 查看
一、保存活动异常销毁前的数据
1.保存的方法如下,仅在异常销毁时调用.常见的活动异常销毁情况有:内存不够系统回收后台活动,横竖屏切换。@Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("key", "想要保存的信息"); }
2.取出保存数据的方法,仅在异常销毁后重新加载活动时调用:
@Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); String str = savedInstanceState.getString("key");//取出之前保存的信息 }
3.防止横竖屏切换导致的活动异常销毁
在有此要求的活动的注册位置(AndroidManifest.xml中)加如下代码:
android:configChanges="orientation"
二、activity启动模式
1.四种启动模式:Standard :默认
singleTop:栈顶有则不新建activity
singleTask:任务栈中有则,不会新建activity,将目标activity之前的activity都出栈
singleInstance:有所有singleTask的特点,并且所有activity都在一个栈里
2.指定Activity的启动方式的两种方法:
(1)AndroidManifest.xml中的activity注册的地方添加如下代码:
android:launchMode=”standard”
(2)跳转用的Intent设置标志
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//相当于singleTask
而FLAG_ACTIVITY_SINGLE_TOP 相当于singleTop
三、隐式intent
这里,书上出现前后矛盾的说辞,有一些错误,以下是在android 7.0 模拟器上实验后的结论。当intent同时出现显示隐式定义时,以显示为主。
1.action
隐式intent必须至少定义一个action,跳转语句只要匹配其中一个就可以了
2.category
隐式intent的category跳转语句只要匹配其中一个就可以了,并且至少定义以下一句(任何情况这一句都是必须定义的,但无需人为匹配):
下面一个例子:
java代码部分
Intent intent = new Intent(); intent.setAction("ACTION_1"); intent.addCategory("CATEGORY_2"); startActivity(intent);
AndroidManifest.xml中:
<activity android:name=".SecondActivity"> <intent-filter > <action android:name="ACTION_1"/> <action android:name="ACTION_2"/> <category android:name="CATEGORY_1"/> <category android:name="CATEGORY_2"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
相关文章推荐
- android开发艺术探索 学习笔记(一) Activity生命周期全面分析
- android开发艺术探索 学习笔记(二) Activity的启动模式
- android开发艺术探索学习 之 结合Activity的生命周期了解Activity的LaunchMode
- Android开发艺术探索笔记一:Activity的启动模式
- Android开发艺术探索 学习笔记
- Android开发艺术探索笔记(2)- Activity的启动模式
- android开发艺术探索学习 之 Activity的生命周期
- Android开发艺术探索学习-Activity跳转时的生命周期
- 《Android 开发艺术探索》——View 事件体系--View基础知识 (学习笔记)
- Android开发艺术探索学习笔记
- 笔记一 Android开发艺术探索之Activity的生命周期和启动模式
- Android开发艺术探索学习笔记1——Avtivity生命周期和启动模式
- Android开发艺术探索学习笔记6——线程和线程池
- Android 开发艺术探索笔记-Activity启动方式
- android开发艺术探索学习 之 结合Activity的生命周期了解Activity的LaunchMode
- Android开发艺术探索阅读笔记之一:Activity的生命周期和启动模式
- android开发艺术探索 学习笔记(三) IntentFilter的匹配规则
- Android开发艺术探索——学习笔记_View事件体系
- Android开发艺术探索学习-老生常谈Activity生命周期
- Android开发艺术探索(研读笔记)——02-Activity的启动模式