Android 开发艺术探索 学习笔记 Activity

一、保存活动异常销毁前的数据

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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值