zoukankan      html  css  js  c++  java
  • 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可实现自定义栈

     

     

  • 相关阅读:
    C#拼音转换,将简体中文转换成拼音
    C#发送邮件
    textBox只能输入汉字
    IOS中UIScrollView的详细使用
    AngularJs学习教程
    IOS-简单计时器的使用
    IOS-多视图控制器之间的切换
    IOS播放音乐和音效
    Nodejs_day04
    Nodejs_day03
  • 原文地址:https://www.cnblogs.com/XiaoGao128/p/12250224.html
Copyright © 2011-2022 走看看