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