zoukankan      html  css  js  c++  java
  • Activity的生命周期 一

    今天早上在做练习的时候R.java死活都没有自动生成出来,后来经过观察,发现res包下的文件名不可用使用大写和数字,不然就会发生这样的情况,不知道是不是一个BUG。

    这篇文章将通过2个Activity来观察Activity的生命周期。

    1、首先创建第一个Activity,FourLessonDemo1.java

     1 package com.example.helloworld;
     2 
     3 import android.app.Activity;
     4 import android.content.Intent;
     5 import android.os.Bundle;
     6 import android.view.View;
     7 import android.view.View.OnClickListener;
     8 import android.widget.Button;
     9 
    10 public class FourLessonDemo1 extends Activity {
    11 
    12  private Button button;
    13 
    14  //当应用程序第一次被创建时,会调用onCreate方法
    15  //这里需要设置布局文件,设置监听器
    16  @Override
    17  protected void onCreate(Bundle savedInstanceState) {
    18   // TODO Auto-generated method stub
    19   super.onCreate(savedInstanceState);
    20   this.setContentView(R.layout.fourone);
    21   button = (Button) findViewById(R.id.calculate);
    22   button.setText("启动第二个Activity程序");
    23   button.setOnClickListener(new buttonClick());
    24   System.out.println("FirstActivity-----onCreate");
    25  }
    26 
    27  class buttonClick implements OnClickListener {
    28 
    29   public void onClick(View arg0) {
    30    // TODO Auto-generated method stub
    31    Intent intent = new Intent();
    32    intent.setClass(FourLessonDemo1.this, FourLessonDemo2.class);
    33    FourLessonDemo1.this.startActivity(intent);
    34   }
    35 
    36  }
    37  //当被调用的Activity被返回(并且系统资源不够用的情况下)或调用finish方法时,调用onDestroy
    38  @Override
    39  protected void onDestroy() {
    40   // TODO Auto-generated method stub
    41 
    42   System.out.println("FirstActivity-----onDestroy");
    43 
    44   super.onDestroy();
    45  }
    46  //应用程序启动另一个 Activity时,会调用onPause方法
    47  //这里需要保存一些数据
    48  @Override
    49  protected void onPause() {
    50   // TODO Auto-generated method stub
    51   System.out.println("FirstActivity-----onPause");
    52   super.onPause();
    53  }
    54  //当Activity重新返回到这个Activity且处于可见状态时,调用onRestart方法
    55  @Override
    56  protected void onRestart() {
    57   // TODO Auto-generated method stub
    58   System.out.println("FirstActivity-----onRestart");
    59   super.onRestart();
    60  }
    61  //当获取用户焦点时会调用onResume
    62  @Override
    63  protected void onResume() {
    64   // TODO Auto-generated method stub
    65   System.out.println("FirstActivity-----onResume");
    66   super.onResume();
    67  }
    68  //当Activity可以被用户看到时,调用onStart
    69  @Override
    70  protected void onStart() {
    71   // TODO Auto-generated method stub
    72   System.out.println("FirstActivity-----onStart");
    73   super.onStart();
    74  }
    75  //当调用另一个Activity后,当另一个Activity完全遮挡当前Activity遮挡时,会调用onStop
    76  @Override
    77  protected void onStop() {
    78   // TODO Auto-generated method stub
    79   System.out.println("FirstActivity-----onStop");
    80   super.onStop();
    81  }
    82 
    83 }

    2、创建第二个Activity,FourLessonDemo2.java

     1 package com.example.helloworld;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 
     6 public class FourLessonDemo2 extends Activity{
     7  @Override
     8  protected void onCreate(Bundle savedInstanceState) {
     9   // TODO Auto-generated method stub
    10   super.onCreate(savedInstanceState);
    11   System.out.println("SecondActivity-----onCreate");
    12   //this.setContentView(R.layout)
    13  }
    14 
    15  @Override
    16  protected void onDestroy() {
    17   // TODO Auto-generated method stub
    18 
    19   System.out.println("SecondActivity-----onDestroy");
    20 
    21   super.onDestroy();
    22  }
    23 
    24  @Override
    25  protected void onPause() {
    26   // TODO Auto-generated method stub
    27   System.out.println("SecondActivity-----onPause");
    28   super.onPause();
    29  }
    30 
    31  @Override
    32  protected void onRestart() {
    33   // TODO Auto-generated method stub
    34   System.out.println("SecondActivity-----onRestart");
    35   super.onRestart();
    36  }
    37 
    38  @Override
    39  protected void onResume() {
    40   // TODO Auto-generated method stub
    41   System.out.println("SecondActivity-----onResume");
    42   super.onResume();
    43  }
    44 
    45  @Override
    46  protected void onStart() {
    47   // TODO Auto-generated method stub
    48   System.out.println("SecondActivity-----onStart");
    49   super.onStart();
    50  }
    51 
    52  @Override
    53  protected void onStop() {
    54   // TODO Auto-generated method stub
    55   System.out.println("SecondActivity-----onStop");
    56   super.onStop();
    57  }
    58 }

    3、创建第一个Activity的布局文件,fourone.xml

     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="fill_parent"
     4     android:layout_height="fill_parent"
     5     android:orientation="vertical" >
     6 
     7     <Button
     8         android:id="@+id/calculate"
     9         android:layout_width="fill_parent"
    10         android:layout_height="wrap_content" />
    11 
    12 </LinearLayout>

    4、注册Activity

     1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     2     package="com.example.helloworld"
     3     android:versionCode="1"
     4     android:versionName="1.0" >
     5 
     6     <uses-sdk
     7         android:minSdkVersion="4"
     8         android:targetSdkVersion="15" />
     9 
    10     <application
    11         android:icon="@drawable/ic_launcher"
    12         android:label="@string/app_name"
    13         android:theme="@style/AppTheme" >
    14         <activity
    15             android:name=".MainActivity"
    16             android:label="@string/title_activity_main" >
    17         </activity>
    18         <activity
    19             android:name=".SecondLessonDemo1"
    20             android:label="@string/other" >
    21         </activity>
    22         <activity
    23             android:name=".SecondLessonDemo2"
    24             android:label="dd" >
    25         </activity>
    26         <activity
    27             android:name=".ThridLessonDemo1"
    28             android:label="dd2" >
    29         </activity>
    30         <activity
    31             android:name=".ThridLessonDemo2"
    32             android:label="dd3" >
    33         </activity>
    34         <activity
    35             android:name=".FourLessonDemo1"
    36             android:label="dd" >
    37             <intent-filter>
    38                 <action android:name="android.intent.action.MAIN" />
    39 
    40                 <category android:name="android.intent.category.LAUNCHER" />
    41             </intent-filter>
    42         </activity>
    43         <activity
    44             android:name=".FourLessonDemo2"
    45             android:label="dd" >
    46         </activity>
    47     </application>
    48 
    49 </manifest>

    我们这里打印出的调试信息,需要打开DDMS窗口中查看

    --------------------------------------------------------------------------------------------------------------------------------------------
    顺势而为
  • 相关阅读:
    面试题目以及注意事项
    jQuery Ajax 实例 ($.ajax、$.post、$.get)
    前端知识大全
    jquery实现2级联动
    [转]那些年我们一起清除过的浮动
    使用kubeadm在CentOS上搭建Kubernetes1.14.3集群
    企业优秀运维人员20道必会iptables面试题
    通过nginx日志利用shell统计日pv和uv
    php访问mysql接口pdo-mysql安装
    何查看已经安装的nginx、apache、mysql和php的编译参数
  • 原文地址:https://www.cnblogs.com/zhuzhenyu/p/2611923.html
Copyright © 2011-2022 走看看