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

 

 

 

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可实现自定义栈

 

 

 

posted @ 2020-02-01 21:24  XiaoGao128  阅读(270)  评论(0编辑  收藏  举报