`
张麟熠焰
  • 浏览: 15804 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Android的 Activity生死周期

 
阅读更多

                 Activity生死周期

1、Android提供了很多Activity的生命周期函数,比如 onCreate(),

     onStart()、onResume()、onPause()、onStop()、onDestroy()等。


2、具体这六个方法的使用:

      2.1 onCreate():创建Activity调用,用于Activity的初始化,在Activity生

            命期中只执行一次,适用于实例化对象

 

      2.2 onStart():Activity:在屏幕上对用户可见时调用

 

      2.3 onResume():Activity开始和用户交互的时候调用,这时该Activity是

            在Activity栈的顶部

 

     2.4 onPause():Activity被暂停时调用,被其他的Activity挡在后面,这里

           可以做一些清理和保存工作

 

      2.5 onStop():Activity被停止或者Activity变成不可见时调用

 

      2.6 onDestroy():Activity被从内存中移除,一般发生在执行finish方法时

            或者Android回收内存的时候

 

3、当从一个界面跳转到另一个界面时,如果先前的界面被完全覆盖,则调

      用onPause(),和onStope()方法,如果没有被完全覆盖,则只调用

      onPause()方法。

 

4、实现代码:

      4.1第一个界面的代码:

      package com.example.android_first;

      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;
      import android.widget.EditText;
      import android.widget.Toast;
      public class MainActivity extends Activity
      { 
          //属性
          private EditText username;  
          /** Called when the activity is first created. */   
          @Override  
         public void onCreate(Bundle savedInstanceState) 
         {
                super.onCreate(savedInstanceState);      
                setContentView(R.layout.activity_main);
                //设置显示的布局文件       
                //获取界面上的组件对象      
                Button login = (Button)findViewById(R.id.button_login);      
                username = (EditText)findViewById(R.id.edit_username);       
                //添加监听器      
                login.setOnClickListener(click_listener);      
                System.out.println("执行了第一个Activity的onCreate方法");  
         }  
         @Override 
         protected void onDestroy()

        {  
               super.onDestroy();  
               System.out.println("执行了第一个Activity的onDestroy方法"); 
         } 
         @Override 
         protected void onPause()

        {  
               super.onPause();  
               System.out.println("执行了第一个Activity的onPause方法"); 
         } 
         @Override 
         protected void onResume()

        {  
               super.onResume();  
               System.out.println("执行了第一个Activity的onResume方法"); 
         } 
         @Override 
         protected void onStart()

        {  
                super.onStart();  
                System.out.println("执行了第一个Activity的onStart方法");
         } 
        @Override 
         protected void onStop()

         {  
                 super.onStop();  
                 System.out.println("执行了第一个Activity的onStop方法");
          }
          //创建动作事件监听器对象(匿名内部类)  
        OnClickListener click_listener = new OnClickListener()
         {
                //监听点击的方法    
               public void onClick(View v)
               {     
                     //验证      
                     if(username.getText().toString().equals("zhangwei")){ 
                     //跳转到第二个界面       
                      Intent intent = new Intent(MainActivity.this,dierge.class);//信

                       使       
                      intent.putExtra("name",username.getText().toString());
                      startActivity(intent);     
                }else{       
                           //提示信息       
                        Toast.makeText(MainActivity.this,"登陆失败",3).show();

                         }   
                 }  
           };
       }

       4.2第二个界面代码:

            package com.example.android_first;

            import android.app.Activity;
            import android.content.Intent;
            import android.media.MediaPlayer;
            import android.os.Bundle;
            import android.widget.TextView;

            /**
             * 第二个界面
             * @author 海斌
             *
             */
             public class dierge extends Activity{
                   MediaPlayer mp = new MediaPlayer();
                   /** Activity的入口 */
                    protected void onCreate(Bundle savedInstanceState) {
                          super.onCreate(savedInstanceState);
                          setContentView(R.layout.second);
  
                          //获取intent
                          Intent intent = getIntent();
                          //取出保存在intent中的信息
                          String username = intent.getStringExtra("name");
                          //获取到布局文件中的文本组件
                          TextView show_username = (TextView)findViewById

                          (R.id.show_username);
                          //设置文本组件上的文本为第一个界面传过来的用户名
                           show_username.setText(username);
                          try {
                                  mp.setDataSource("sdcard/baihu.mp3");
                                  mp.prepare();
                                } catch (Exception e) {
                                   e.printStackTrace();
                             }
                        }
 
              @Override
               protected void onStart() {
                      super.onStart();
                       //播放音乐
                       try {
                                mp.start();
                            }catch (Exception e) {
                                e.printStackTrace();
                             }
                }
 
                @Override
                 protected void onPause() {
                       super.onPause();
                      //暂停音乐
                        mp.pause();
                 }
            }
5、实验结果截图:

     
           
           
           
6、运行结果显示:

      6.1启动第一个界面:

       
       
       6.2从第一个界面跳转到第二个界面

        
        
        6.3完全退出时:
  
        
 

  • 大小: 49.4 KB
  • 大小: 161.3 KB
  • 大小: 14.4 KB
  • 大小: 22.4 KB
  • 大小: 37.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics