Android Activity相关笔记

1.显式 隐式启(action区分大小写)Activity

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btn_xianshi:

startActivity(new Intent(MainActivity.this,XianShiActivity.class));

break;

case R.id.btn_yinshi:

Intent it=new Intent();

it.setAction("yinshi");

startActivity(it);

break;

}

}

重点必须在将被隐式启动的Activity里加上filter

<activity

            android:name=".YinShiActivity"

            android:label="@string/title_activity_yin_shi" >

            <intent-filter >

                <action android:name="yinshi"/>

                <category android:name="android.intent.category.DEFAULT"/>

            </intent-filter>

        </activity>

在隐式启动时,intent必须完全匹配 intent-filter内容。若intent启动时没有addCategory()

则系统会默认为intent加上android.intent.category.DEFAULT,所以在intent-filter中,必须加上这句。如果intent-filter内有data属性的话,同样intent必须加上setDataAndType(),

不能分别调用setDate(),setType(),Android源码中这两种方法里面都会将对方(data,type)至为null

注意隐式调用时最好判断一下是否有匹配的activity 方法如下:

if( intent.resolveActivity(getPackageManager())!=null)

startActivity(it);

1. 在Activity栈中 旧的Activity onPause() 后 新的Activity 启动,新的Activity onResume()后 旧的Activity onStop()

2. onSaveInstanceState()方法只在Activity被异常终止并且有机会重新显示时调用(例如横竖屏切换),正常情况下不会被调用,并且该方法在onStop之前被调用,但跟onPause()的调用没有既定的时间关系。当Activity被重新创建后,会把保存的Bundle同时传给onRestoreInstanceState()onCreate()方法.这两种方法的区别是onRestoreInstanceState()一旦被调用,其参数Bundle一定不为null.

3. Activity设置启动模式的两种方法

静态: <activity

            android:taskAffinity="com.example.androidstepdemo"

            android:name=".YinShiActivity"

            android:launchMode="singleTask"

            android:label="@string/title_activity_yin_shi" >

动态添加:intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

转载于:https://my.oschina.net/sunqiyao/blog/664414

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值