今天早上在做练习的时候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窗口中查看
--------------------------------------------------------------------------------------------------------------------------------------------
顺势而为
顺势而为