Android实验报告生命周期

Android 开发

(实验四)

         实验题目:Activity生命周期验证试验

   指导老师:

   班    级:计算机科学与技术系班

   姓    名:

一、   实验目的

1、深入理解Activity运行机制和原理。

2、掌握Activity的声明周期各个阶段工作流程。

3、掌握多个Activity之间生命周期的转换过程。

4、通络Intent实现多页面之间数据的传递(辅助完成)。

二、   实验内容

1、    搭建任意组件,设计多个界面,运行程序观察其生命周期的情况。

2、    使用Intent实现页面之间数据的传递。

三、   实验代码

AlifecyfleActivity.java

package com.wr;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class AlifecycleActivity extends Activity {

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        Button BtnStart = (Button) findViewById(R.id.BtnStart);

        BtnStart.setOnClickListener(new MyBtnClickListener());

    }

    @Override

       protected void onDestroy() {

              // TODO Auto-generated method stub

              super.onDestroy();

              System.out.println("AlifecycleActivity:onDestroy()");

       }

       @Override

       protected void onPause() {

              // TODO Auto-generated method stub

              super.onPause();

              System.out.println("AlifecycleActivity:onPause()");

       }

       @Override

       protected void onRestart() {

              // TODO Auto-generated method stub

              super.onRestart();

              System.out.println("AlifecycleActivity:onRestart()");

       }

       @Override

       protected void onResume() {

              // TODO Auto-generated method stub

              super.onResume();

              System.out.println("AlifecycleActivity:onResume()");

       }

       @Override

       protected void onStart() {

              // TODO Auto-generated method stub

              super.onStart();

              System.out.println("AlifecycleActivity:onStart()");

       }

       @Override

       protected void onStop() {

              // TODO Auto-generated method stub

              super.onStop();

              System.out.println("AlifecycleActivity:onStop()");

       }

       public class MyBtnClickListener implements OnClickListener {

           //重写点击事件处理方法

           public void onClick(View arg0) {

                  // TODO Auto-generated method stub

                      Intent intent = new Intent(AlifecycleActivity.this,AlcActivity2.class);//创建意图对象

                  //使用意图对象打开一个新的Activity

                  startActivity(intent);

           }

}

}

AlcActivity.java

package com.wr;

import android.app.Activity;

import android.os.Bundle;

public class AlcActivity2 extends Activity {

       /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.alcactivity2_main);

    }

       @Override

       protected void onDestroy() {

              // TODO Auto-generated method stub

              super.onDestroy();

              System.out.println("AlcActivity2:onDestroy()");

       }

       @Override

       protected void onPause() {

              // TODO Auto-generated method stub

              super.onPause();

              System.out.println("AlcActivity2:onPause()");

       }

       @Override

       protected void onRestart() {

              // TODO Auto-generated method stub

              super.onRestart();

              System.out.println("AlcActivity2:onRestart()");

       }

       @Override

       protected void onResume() {

              // TODO Auto-generated method stub

              super.onResume();

              System.out.println("AlcActivity2:onResume()");

       }

       @Override

       protected void onStart() {

              // TODO Auto-generated method stub

              super.onStart();

              System.out.println("AlcActivity2:onStart()");

       }

       @Override

       protected void onStop() {

              // TODO Auto-generated method stub

              super.onStop();

              System.out.println("AlcActivity2:onStop()");

       }

}

IntentActivity.java

package com.gml;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

public class IntentActivity extends Activity {

    private TextView txtShow;

       private Button btnPage2;

       private String name;

       private int age;

       /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        txtShow = (TextView) findViewById(R.id.txtShow);

        btnPage2 = (Button) findViewById(R.id.btnPage2);

        btnPage2.setOnClickListener(myListener);

        name = "Mary";

        age = 27;

        String s = "姓名:"+name+"\n\r"+"年龄:"+age;

        txtShow.setText(s);

    }

       @Override

       //接收被调程序传回的数据,必须重载onActiveResult()方法。

              protected void onActivityResult(int requestCode, int resultCode, Intent data) {

              // TODO Auto-generated method stub

              super.onActivityResult(requestCode, resultCode, data);

              if(requestCode==ACTIVITY_EDIT){

                     if(resultCode==RESULT_OK){

                            Bundle bundle = data.getExtras();

                            age = bundle.getInt("AGE");

                            String s= "姓名:"+name+"\n\r"+"年龄:"+age;

                             txtShow.setText(s);

                     }

                     if(resultCode==RESULT_CANCELED);

              }

       }

    private static final int ACTIVITY_EDIT = 1;

       private Button.OnClickListener myListener = new Button.OnClickListener(){

             

              public void onClick(View v){

                     Intent intent = new Intent();

                     //使用setClass()确定Intent的发件人和收件者,IntentActivity传递给Second.

                     intent.setClass(IntentActivity.this, OneActivity.class);

                     //使用Bundle对象的put()方法打包数据,并利用putExtras()来进行传递

                     Bundle bundle = new Bundle();

                     bundle.putString("NAME", name);

                     bundle.putInt("AGE", age);

                     intent.putExtras(bundle);

                     //用startActivityForResult()方法取代startAcctivity()方法将包里寄出,并等待另一方的回音。

                     startActivityForResult(intent,ACTIVITY_EDIT);

              }

       };

}

OneActivity.java

package com.gml;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

public class OneActivity extends Activity{

        EditText edtAge;

        int age;

       public void onCreate(Bundle savedInstanceState) {

           super.onCreate(savedInstanceState);

           setContentView(R.layout.page1);

              TextView txtName =  (TextView) findViewById(R.id.txtName);

              edtAge = (EditText) findViewById(R.id.edtAge);

              Button btnSure = (Button) findViewById(R.id.btnSure);

              Button btnCancel = (Button) findViewById(R.id.btnCancel);

              btnSure.setOnClickListener(myListener);

              btnCancel.setOnClickListener(myListener);

              //使用onCreat方法取出Intent数据,并获取Bundle对象中名称为NAME、AGE的数据

              Intent intent = this.getIntent();

              Bundle bundle = intent.getExtras();

              String name = bundle.getString("NAME");

              int age = bundle.getInt("AGE");

              txtName.setText("姓名:"+name);

              edtAge.setText(""+age);

       }

       private Button.OnClickListener myListener = new Button.OnClickListener(){

              public void onClick(View v){

                     if (v.getId()==R.id.btnSure){

                            //创建Intent对象

                            Intent intent = new Intent();

                            //将回传的数据放入Bundle中,再把这个Bundle交给Intent处理

                            age =Integer.parseInt(edtAge.getText().toString());

                            Bundle bundle = new Bundle();

                            bundle.putInt("AGE",age);

                            intent.putExtras(bundle);

                            //最后使用setResult()方法将Intent传回,同时必须传回一个结果的代码。

                            setResult(RESULT_OK,intent);

                            finish();

                     }

                     if(v.getId()==R.id.btnCancel){

                            setResult(RESULT_CANCELED);

                            finish();}

              }

              };}

四、   实验结果

五、   实验总结

1、    通过本次实验了解了Activity生命周期的运行过程。

2、    通过本次实验Intent实现多页面之间数据的传递。

3、    实验中遇到的问题通过与老师和同学讨论也已得到解决。

相关推荐