Android_Activity的生命周期、跳转方式及参数传递、启动模式。

时间:2021-11-29 10:53:50

Activity的生命周期:

onCreat ,onStart,onResume,onPause,onRestart,onStop,onDestroy

Activity之间的跳转分为显式跳转和隐式跳转。

隐式跳转:

Intent intent=new Intent();

intent.setAction("android.intent.action.BAcivity");
startActivity(intent);

显式跳转:

Intent intent=new Intent(AActivity.class,BActivity.class);

//intent.setClass(class,class)
 //intent.setClassName(class,"class url");

参数传递:

Bundle bundle=new Bundle();
bundle.putString("string","---hahaha---");
intent.putExtras(bundle);
startActivity(intent);

需回传参数的参数传递:

AActivity:

Intent intent=new Intent(Activity.this,BActivity.class);
 Bundle bundle=new Bundle();
 bundle.put__(tag,value);
 intent.putExtras(bundle);
 startActivityForResult(intent,requestcode);//requestcode:请求标记

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
}

BActivity:

bundle.put__(tag,value);
Intent intent=new Intent();
intent.putExtras(bundle);
setResult(requestcode,intent);

Activity的启动模式:

通过LaunchMode可设置Activity的启动模式,分为:

standard,singleTop,singleTask,singleInstance

每个activity被创建时都会被放入栈中

standard模式下每个activity的启动都会以重新创建的方式启动。

singleTop模式下位于栈顶的activity将会被复用。

singleTask模式下如果栈中原本就存在这个activity,那么它会被复用,且在栈中位于其上的activity都会被销毁。

singleInstance模式下每个activity被创建时都会独立放进一个栈中,以实现任意复用。

通过在manifest里设置activity的taskAffinity可实现自定义栈