Android 使用Intent 在Activity 间跳转

来源:互联网 发布:网络回合制游戏 编辑:程序博客网 时间:2024/05/22 00:29

假设有4个Activity: A,B,C,D

他们生成的顺序是: A->B->C->D


Activity之间的跳转,有几个方法:

1. startActivity,用于直接跳转

情景:从 A 跳转到 C:

Intent intent = new Intent(A.this, C.class);
startActivity(intent );


2. startActivityForResult,用于跳转之后,希望得到一个回应

情景:A跳转到B,B结束之后返回一个结果给A

2.1. Activity A的代码:

  2.1.1. 跳转代码

    Intent intent = new Intent(FriendActivity.this, TalkActivity.class);
  int requestCode = 100;
intent.putExtra("param1",param1);
startActivityForResult(intent, requestCode);


2.1.2. 复写 onActivityResult


2.2. Activity B的代码:

Intent intent = new Intent();

intent.putExtra("data", data);
int resultCode = 100;
setResult(resultCode,intent);


3. 跳转到一个已经存在的Activity,避免已经存在的Activity 调用OnCreate()

情景:A跳转到B,B再跳转到C,等C结束之后,想直接跳转到A

3.1. 在跳转的地方(Activity C):

Intent intent = new Intent(C.this,A.class);

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);


3.2. 在AndroidManifest.xml 中将A的launchMode设置为“singleTop”

<activity android:name="A" android:launchMode="singleTop" />


3.3. 在Activity A 复写onNewIntent,将要特别处理的逻辑在这里处理



Reference:

http://stackoverflow.com/questions/2424488/android-new-intent-starts-new-instance-with-androidlaunchmode-singletop


1 0
原创粉丝点击