Android基础学习(10)-Activity的生命周期

一、Activity的生命周期:

示例1:

Main.java

package com.wwtiot.ozee3;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class Main extends Activity {
	private Button btnDial, btnPage2, btnFinish;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		// 获取资源文件中的界面组件
		btnDial = (Button) findViewById(R.id.btnDial);
		btnPage2 = (Button) findViewById(R.id.btnPage2);
		btnFinish = (Button) findViewById(R.id.btnFinish);

		// 为3个按钮组件设置共享listener
		btnDial.setOnClickListener(myListener);
		btnPage2.setOnClickListener(myListener);
		btnFinish.setOnClickListener(myListener);
		Toast.makeText(getApplicationContext(), "执行onCreate(1)",
				Toast.LENGTH_SHORT).show();
	}

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

		@Override
		public void onClick(View v) {
			if (v.getId() == R.id.btnFinish) {
				finish();
			} else if (v.getId() == R.id.btnPage2) {
				Intent intent = new Intent();
				intent.setClass(getApplicationContext(), Second.class);
				startActivity(intent);
			} else if (v.getId() == R.id.btnDial) {
				Uri uri = Uri.parse("tel:1234567");
				Intent intent = new Intent(Intent.ACTION_DIAL, uri);
				startActivity(intent);
			}
		}
	};

	@Override
	protected void onStart() {
		super.onStart();
		Toast.makeText(getApplicationContext(), "执行onStart(1)",
				Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onResume() {
		super.onResume();
		Toast.makeText(getApplicationContext(), "执行onResume(1)",
				Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onRestart() {
		super.onRestart();
		Toast.makeText(getApplicationContext(), "执行onRestart(1)",
				Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onPause() {
		super.onPause();
		Toast.makeText(getApplicationContext(), "执行onPause(1)",
				Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onStop() {
		super.onStop();
		Toast.makeText(getApplicationContext(), "执行onStop(1)",
				Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		Toast.makeText(getApplicationContext(), "执行onDestroy(1)",
				Toast.LENGTH_SHORT).show();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".Main" >

    <Button
        android:id="@+id/btnDial"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="调用拨号按钮" />
    
    <Button
        android:id="@+id/btnPage2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="启动另一个自定义的Activity" />
    
    <Button
        android:id="@+id/btnFinish"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="finish()结束" />

</LinearLayout>

Second.java

package com.wwtiot.ozee3;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class Second extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.second);
		Button btnHome = (Button) findViewById(R.id.btnHome);
		btnHome.setOnClickListener(myListener);
		Toast.makeText(getApplicationContext(), "执行onCreate(2)",
				Toast.LENGTH_SHORT).show();
	}

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

		@Override
		public void onClick(View v) {
			finish();
		}
	};

	@Override
	protected void onStart() {
		super.onStart();
		Toast.makeText(getApplicationContext(), "执行onStart(2)",
				Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onResume() {
		super.onResume();
		Toast.makeText(getApplicationContext(), "执行onResume(2)",
				Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onRestart() {
		super.onRestart();
		Toast.makeText(getApplicationContext(), "执行onRestart(2)",
				Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onPause() {
		super.onPause();
		Toast.makeText(getApplicationContext(), "执行onPause(2)",
				Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onStop() {
		super.onStop();
		Toast.makeText(getApplicationContext(), "执行onStop(2)",
				Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		Toast.makeText(getApplicationContext(), "执行onDestroy(2)",
				Toast.LENGTH_SHORT).show();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.second, menu);
		return true;
	}

}

second.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".Second" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第二个程序!" />

    <Button
        android:id="@+id/btnHome"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="返回主程序" />

</LinearLayout>


示例2:

Main.java

package com.wwtiot.ozee4;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class Main extends Activity {
	public MediaPlayer player = new MediaPlayer();
	private Button btnPause, btnContinue;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		player = MediaPlayer.create(getApplicationContext(), R.raw.moon_night);
		// 连续播放
		player.setLooping(true);
		// 音乐播放
		player.start();

		// 获取资源文件中的界面组件
		btnPause = (Button) findViewById(R.id.btnPause);
		btnContinue = (Button) findViewById(R.id.btnContinue);

		// 为Button组件设置共享listener
		btnPause.setOnClickListener(myListener);
		btnContinue.setOnClickListener(myListener);
	}

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

		@Override
		public void onClick(View v) {
			if (v.getId() == R.id.btnPause) {
				player.pause();
			}
			if (v.getId() == R.id.btnContinue) {
				player.start();
			}
		}
	};

	// 音乐播放暂停
	// @Override
	// protected void onPause() {
	// super.onPause();
	// player.pause();
	// }

	// 音乐继续播放
//	@Override
//	protected void onResume() {
//		super.onResume();
//		player.start();
//	}

	// 释放
//	@Override
//	protected void onDestroy() {
//		super.onDestroy();
//		player.release();
//	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".Main" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <Button
        android:id="@+id/btnPause"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="暂停" />

    <Button
        android:id="@+id/btnContinue"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="播放" />

</LinearLayout>


你可能感兴趣的:(activity的生命周期,Android基础学习)