實驗任務4 Activity的生命週期測試
阿新 • • 發佈:2019-01-30
一、實驗效果圖:
二、主要程式碼:
1、java程式碼:
(1)MainActivity.java
package com.example.activitylifecycletest; import android.R.id; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.Button; import android.view.View.OnClickListener; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d("MainActivity", "onCreat"); Button startNormalActivity = (Button) findViewById((Integer) R.id.button1); Button startDialogActivity = (Button) findViewById((Integer) R.id.button2); startNormalActivity.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(MainActivity.this, NormalActivity.class); startActivity(intent); } }); startDialogActivity.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(MainActivity.this, DialogActivity.class); startActivity(intent); } }); } @Override protected void onDestroy() { super.onDestroy(); Log.d("MainActivity", "onDestroy"); } @Override protected void onPause() { super.onPause(); Log.d("MainActivity", "onPause"); } @Override protected void onRestart() { super.onRestart(); Log.d("MainActivity", "onRestart"); } @Override protected void onResume() { super.onResume(); Log.d("MainActivity", "onResume"); } @Override protected void onStart() { super.onStart(); Log.d("MainActivity", "onStart"); } @Override protected void onStop() { super.onStop(); Log.d("MainActivity", "onStop"); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }
(2)NormalActivity.java
package com.example.activitylifecycletest; import android.R.id; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.Button; import android.view.View.OnClickListener; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d("MainActivity", "onCreat"); Button startNormalActivity = (Button) findViewById((Integer) R.id.button1); Button startDialogActivity = (Button) findViewById((Integer) R.id.button2); startNormalActivity.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(MainActivity.this, NormalActivity.class); startActivity(intent); } }); startDialogActivity.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(MainActivity.this, DialogActivity.class); startActivity(intent); } }); } @Override protected void onDestroy() { super.onDestroy(); Log.d("MainActivity", "onDestroy"); } @Override protected void onPause() { super.onPause(); Log.d("MainActivity", "onPause"); } @Override protected void onRestart() { super.onRestart(); Log.d("MainActivity", "onRestart"); } @Override protected void onResume() { super.onResume(); Log.d("MainActivity", "onResume"); } @Override protected void onStart() { super.onStart(); Log.d("MainActivity", "onStart"); } @Override protected void onStop() { super.onStop(); Log.d("MainActivity", "onStop"); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }
(3)DialogActivity.java
package com.example.activitylifecycletest; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class DialogActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dialog); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.dialog, menu); return true; } }
2、佈局檔案:
(1)activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="149dp"
android:text="Start NormalActivity" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/button1"
android:layout_below="@+id/button1"
android:layout_marginTop="34dp"
android:text="Start DialogActivity" />
</RelativeLayout>
(2)activity_normal.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".NormalActivity" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is a normal activity" />
</RelativeLayout>
(3)activity_dialog.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".DialogActivity" >
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="This is a dialog activity" />
</RelativeLayout>
3、AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activitylifecycletest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.activitylifecycletest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.activitylifecycletest.NormalActivity"
android:label="@string/title_activity_normal" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.activitylifecycletest.DialogActivity"
android:label="@string/title_activity_dialog"
android:theme="@android:style/Theme.Dialog" >
</activity>
</application>
</manifest>
三、遇到的問題:
1、通過重寫Activity的七個方法:onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()、onRestart() 理解Activity的生命週期,並充分理解普通活動與對話方塊活動之間的區別。
2、點選活動按鈕與按back鍵返回時,通過LogCat觀察活動的進行。