美文网首页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