您的位置:首页 > 其它

activity之间參数传递&&获取activity返回值&&activity生命周期

2015-12-29 16:50 337 查看

Activity之间參数传递

A activity想将參数传给B activity时能够利用Intent将消息带过去

Intent intent = new Intent(this,BActivity.class);
intent.putExtra("xxxx", "xxxx");


数据量多的话能够使用

Bundle bundle = new Bundle();
intent.putExtras(bundle);




获取activity返回值

A activity调用 B activity后获取B activity的返回值

B:

Intent data = new Intent();
data.putExtra("name", name
setResult(3, data);
// 能够把当前的activity给结束掉
finish();


A:

/**
* 当被激活的activity 使用完成 销毁的时候 就会运行onActivityresult的方法
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub

System.out.println("结果码为"+ resultCode);
super.onActivityResult(requestCode, resultCode, data);

if (data != null) {
String name = data.getStringExtra("name");
if (requestCode == 1) {

et.setText(name);
}else if(requestCode == 2){
et2.setText(name);
}

}
}


activity生命周期:



特别的:

当activity渐渐出现时调用OnResume()方法

当activity開始被遮挡但并未全然消失时。调用onPause()方法

若此时原activity被激活则从新调用OnResume()方法

当activity全然不可见是调用onStop()方法

若此时原activity被激活则从新调用OnStart()方法

特别的:当屏幕横竖屏幕切换时:

默认情况下(没有配置android:configChanges属性):

竖屏切横屏,销毁当前Activity之后。创建一个新Activity实例。
横屏切竖屏。销毁当前Activity之后,创建一个新Activity实例,新的Activity实例非常快就被销毁。接着又会创建一个新Activity实例。假设仅仅希望创建一个实例,能够配置android:configChanges="orientation"

<activity
android:configChanges="keyboardHidden|orientation"
android:theme="@android:style/Theme.Dialog"
android:name=".Dmeo2Activity"\>
</activity>


当系统将我们的activity异常关闭时:

我们要将一些activity的信息保存起来。方便到时候恢复:



当应用遇到意外情况(如:内存不足、用户直接按Home键)由系统销毁一个Activity时,onSaveInstanceState()会被调用。可是当用户主动去销毁一个Activity时。比如在应用中按返回键,onSaveInstanceState()就不会被调用。

由于在这样的情况下,用户的行为决定了不须要保存Activity的状态。通常onSaveInstanceState()仅仅适合用于保存一些暂时性的状态。而onPause()适合用于数据的持久化保存。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: