美文网首页Android那点事
有关Activity的一点笔记

有关Activity的一点笔记

作者: NickelFox | 来源:发表于2017-09-20 20:47 被阅读10次

1. startActivity的工作过程

调用startActivity之后会传递到操作系统的ActivityManager中去,之后
ActivityManager会启动另一个activity。

2. 启动活动与传递数据

  • 用startActivityForResult启动的Activity要用finishActivity(int requestCode)函数去销毁

  • startActivityForResult的用法

    • 调用startActivityForResult(Intent intent,int requestCoed),其中Intent是启动第二个activity的意图,requestCoed是用来在onActivityResult()回调中区分是什么时候启动,以及启动的是哪个Activity的。
    Intent intent = new Intent(MainActivity.this,SecondActivity.class);
    startActivityForResult(intent,1);
    
    • 被启动的Activity可以调用setResult(int resultCode,Intent data)方法给启动它的Activity返回数据(包裹在Intent中)
    Intent intent = new Intent();
    intent.putExtra("data_return","Hello MainActivity");
    setResult(RESULT_OK,intent);
    
    • 启动Activity实现onActivityResult()回调,获取数据
      @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          switch (requestCode){
              case 1:
                  if(resultCode == RESULT_OK){
                      Log.i(TAG, "onActivityResult: result:"+data.getStringExtra("data_return"));
                  }
          }
      }
    
  • 被启动的Activity获取启动它的Activity传来的数据,只需要调用getIntent()方法获取到启动自己用到的Intent,然后调用Intent的getXXX()方法获取即可。

  • Bundle是什么?

Bundle是用来存储数据的一种集合,采用键值对的形式,通常用在Intent传递数据过程中,存储数据

相关文章

网友评论

  • 秦子帅:厉害了。可以的话关注一下我的公众号。一起努力
    NickelFox:@或者明天_qzs 互粉互粉

本文标题:有关Activity的一点笔记

本文链接:https://www.haomeiwen.com/subject/fuedtxtx.html