在android中启动一个活动的两种方法有什么区别

时间:2012-02-01 12:58:34

标签: android

我无法理解何时使用这些方法

Button b = (Button) findViewById(R.id.btn);
        home.setOnClickListener (new View.OnClickListener() {
            public void onClick(View view) {
                Intent i = new Intent(view.getContext(), Home.class);
                    startActivityForResult (i, 0);

            }
        });

Button b = (Button)findViewById(R.id.btn);
    button.setOnClickListener (new View.OnClickListener() {
        public void onClick (View view) {
            Intent i = new Intent (this, Home.class);
            startActivity (i);

        }
    });

我的另一个疑问是当我使用intent onCreate(Bundle b)方法启动一个新的Activity时,我想知道b(Bundle)是指当前Activity还是前一个Activity被调用的那个。< / p>

3 个答案:

答案 0 :(得分:3)

当我们需要来自secondActivity的一些数据时,使用OnstartActivityforResult作为相机,当我们点击它并返回第一个Activity onActivityForResult方法时。而startActivity只是用于在Android中启动新的Activity ...

http://rahulonblog.blogspot.in/2010/05/android-startactivityforresult-example.html

答案 1 :(得分:1)

如果您在任何活动中调用 startActivityForResult ,则当被调用活动完成或按下后退按钮时,将通知当前正在调用的活动,并且某些信息将返回到调用活动。

主叫活动的 onActivityResult 方法负责接收已完成活动发送的信息。

答案 2 :(得分:0)

startActivity(Intent)方法用于启动一个新活动,该活动将放置在活动堆栈的顶部。它需要一个参数,一个Intent,它描述了要执行的活动。

有时您希望在活动结束时从结果中获取结果。例如,您可以启动一项活动,让用户在联系人列表中选择一个人;当它结束时,它返回被选中的人。要执行此操作,请使用标识该调用的第二个整数参数调用startActivityForResult(Intent,int)版本。结果将通过onActivityResult(int,int,Intent)方法返回。

当一个活动退出时,它可以调用setResult(int)将数据返回给它的父项。它必须始终提供结果代码,该结果代码可以是标准结果RESULT_CANCELED,RESULT_OK或从RESULT_FIRST_USER开始的任何自定义值。此外,它还可以选择返回包含所需的任何其他数据的Intent。所有这些信息都会显示在父级的Activity.onActivityResult()上,以及它最初提供的整数标识符。

如果子活动因任何原因(例如崩溃)失败,则父活动将收到代码为RESULT_CANCELED的结果。