如何进行Activity的启动与关闭-创新互联

如何进行Activity的启动与关闭,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联成立于2013年,我们提供高端重庆网站建设成都网站制作网站设计、网站定制、营销型网站建设小程序设计、微信公众号开发、成都网站营销服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为水电改造企业提供源源不断的流量和订单咨询。

  一:启动


  1:直接启动  (startActivity)

  ◆首先声明Intent对象指定启动源及启动目标,然后让Intent对象作为startActivity方法的参数完成启动。


  ◆实现:


Intent i = new Intent(MainActivity.this,Act2.class);//启动源,启动目标
startActivity(i);   //直接启动的方法

  2:携值启动 (startActivity)

  ◆首先声明Intent对象指定启动源及启动目标,调用Intent对象的putExtra方法,以键值对的形式携带数据,然后让Intent对象作为startActivity方法的参数完成启动

  ◆实现:

  (1)主Activity


Intent i = new Intent(启动源.this,启动目标.class
);
                i.putExtra("键的名称", "值");
                startActivity(i);

 (2)目标Activity


String val = getIntent().getStringExtra("键的名称");//取得传过来的值

  3:带返回值的启动 (startActivityForResult)


  在某些场景下,我们需要从A界面跳转携带数据到B界面,在B界面做一些处理后,在带着返回值回到A界面已完成相应操作,这是我们需要带返回值的启动。

  ◆具体过程如下:


  (1)主Activity,创建Intent对象,指明启动源及启动目标

  (2)主Activity,调用Intent对象的putExtra方法,以键值对的形式携带数据

  (3)主Activity,调用startActivityForResult方法,参数有两个,第一个为Intent对象,第二个为requestCode,为int类型,为了判断是哪个界面触发的动作

  (4)目标Activity,创建空的Intent对象,调用putExtra方法,以键值对的形式储存数据

  (5)目标Activity,准备数据,此时只是准备数据,还没有传送,只有finish界面之后才触发启动。setResult方法,两个参数,第一个resultCode,标志是那个界面返回的结果,第二个参数Intent对象

  (6)目标Activity,终止目标Activity,finish方法执行之后,出发了返回值启动

  (7)主Activity,重写onActivityResult方法,通过对参数值的比较,来执行不同的操作

  ◆具体实现

  (1)主Activity通过按钮实现返回值启动


public class MainActivity extends Activity {
    private Button button;//声明按钮
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button1);//根据id查找按钮
        button.setOnClickListener(new OnClickListener() {//添加监听
                                                                                                                                 
            @Override
            public void onClick(View arg0) {
                Intent i = new Intent(MainActivity.this,Act2.class);//定义Intent对象,指明源于目标
                                                                                                                                     
                startActivityForResult(i, 1);       //带返回值的启动方式    
            }
        });
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {//判断是那个界面返回的动作
        case 1:
            switch (resultCode) {//判断是哪个返回值
            case 1:
                System.out.println(data.getStringExtra("act2"));
                break;
            default:
                System.out.println("resultCode值不匹配");
                break;
            }
                                                                                                                                 
            break;
        default:
            System.out.println("requestCode值不匹配");
            break;
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
                                                                                                                         
}

  (2)目标Activity

public class Act2 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.act2);
        Intent i = new Intent();//空Intent对象
        i.putExtra("act2", "我是act2");//储存数据
        setResult(1, i);//准备数据
        finish();//终止Activity
                                                                                                                     
                                                                                                                     
    }
}

  ◆结果:在控制台输出返回来的值


08-21 13:34:50.777: I/System.out(451): 我是act2

  二:关闭


  1:关闭自身(finish)


  finish方法用来当Activity完成所有任务且需要关闭的情况时调用。这个方法一旦被执行,Activity将执行生命周期中的onDestory方法,因此我们可以把资源回收的操作放在onDestory里,调用finish方法,间接的调用onDestory方法,已达到关闭Activity的目的。

  2:关闭其他Activity(finishActivity)


  finishActivity用来根据参数requestCode的值来决定关闭哪个Activity。能被该方法关闭的Activity可以有多个,但是这些Activity必须由带返回值的启动方式。

看完上述内容,你们掌握如何进行Activity的启动与关闭的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页名称:如何进行Activity的启动与关闭-创新互联
本文来源:http://cdiso.cn/article/dgjpoi.html

其他资讯