編輯:關於Android編程
Activity的生命周期圖
2 Android生命周期中涉及到的幾個過程
1.啟動Activity:系統會先調用onCreate方法,然後調用onStart方法,最後調用onResume,Activity進入運行狀態。
2. 當前Activity被其他Activity覆蓋其上或被鎖屏,系統會調用onPause方法,暫停當前Activity的執行。
3.當前Activity由被覆蓋狀態回到前台或解鎖鎖屏:系統會調用onResume方法,再次進入運行狀態。
4.當前Activity轉到的Activity界面或按Home鍵回到主屏,自身退居後台:系統會先調用onPause方法,然後調用onStop方法。進入停滯狀態。
5.用戶後退回到此Activity:系統會先後調用onRestart方法,然後調用onStart方法,最後調用onResume方法,再次進入運行狀態。
6.當前Activity處於被覆蓋狀態或者後台不可見狀態,即第2步和第4步,系統內存不足,殺死當前Activity,而後用戶退回當前Activity,再次調用onCreate方法、onStart方法、onResume方法,進入運行狀態。
7.當用戶退出當前Activity:系統先調用onPause方法,然後調用onStop方法,最後調用onDestory方法,結束當前Activity.
3.編寫如下程序進行測試
4 Android清單文件如下:
1.0 encoding=utf-8?>
package=com.itheima.lifecycle
android:versionCode=1
android:versionName=1.0 >
android:minSdkVersion=8
android:targetSdkVersion=19 />
android:allowBackup=true
android:icon=@drawable/ic_launcher
android:label=@string/app_name
android:theme=@style/AppTheme >
android:name=com.itheima.lifecycle.MainActivity
android:label=@string/app_name >
android.intent.action.MAIN />
android:theme=@android:style/Theme.Translucent
android:name=com.itheima.lifecycle.SecondActivity>
5 布局文件activity_main.xml
xmlns:tools=http://schemas.android.com/tools
android:layout_width=match_parent
android:layout_height=match_parent
tools:context=.MainActivity >
布局文件:activity_second.xml
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=.SecondActivity >
android:layout_width=wrap_content
android:layout_height=wrap_content
android:layout_centerHorizontal=true
android:layout_centerVertical=true
android:text=我是第二個界面/>
6 MainActivity的代碼如下:
package com.itheima.lifecycle;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
public class MainActivity extends ActionBarActivity {
/**
* 被創建的時候調用的方法
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println(oncreate);
}
/**
* 被銷毀的時候調用的方法
*/
@Override
protected void onDestroy() {
System.out.println(onDestroy);
super.onDestroy();
}
/**
* 當activity界面可見的時候調用的方法
* Activity創建或者從後台重新回到前台時候被調用
*/
@Override
protected void onStart() {
System.out.println(onStart);
super.onStart();
}
/**
* Activity從後台重新回到前台時被調用
*/
protected void onRestart() {
System.out.println(onstart);
super.onRestart();
}
/**
* 當activity界面用戶不可見的時候調用的方法
*/
@Override
protected void onStop() {
System.out.println(onStop);
super.onStop();
}
/**
* 界面開始獲取到焦點對應的方法。
* (界面按鈕可以被點擊,文本框可以輸入內容)
*
* Activity創建或者從被覆蓋、後台重新回到前台時被調用
*/
@Override
protected void onResume() {
System.out.println(onresume);
super.onResume();
}
/**
* 界面失去焦點對應的方法(暫停)
* (按鈕不可被點擊,文本框不可,但是界面輸入內容,用戶仍然能看見)
*/
@Override
protected void onPause() {
System.out.println(onpause);
super.onPause();
//可能在執行完onPause或onStop後,系統資源緊張將Activity殺死,所以有
//必要在此保存持久數據
}
/**
* 窗口獲得或失去焦點是被調用,在onResume之後或onPause之後
*/
public void onWindowFocusChanged(boolean hasFocus) {
System.out.println(onWindowFocusChanged);
super.onWindowFocusChanged(hasFocus);
}
/**
* Activity被系統殺死是被調用。
* 例如:屏幕方向改變時,Activity被銷毀在重建;當前Activity處於後台,系統資源
* 緊張將其殺死。
* 另外,當跳轉到其他Activity或者按Home鍵回到主屏是該方法也被調用,系統為了保存
* 當前View組件,在onPause之後前被調用。
*/
protected void onSaveInstanceState(Bundle outState) {
System.out.println(onSaveInstanceState);
super.onSaveInstanceState(outState);
}
/**
* Activity被系統殺死後再重建時被調用
* 例如:屏幕方向改變時,Activity被銷毀在重建,當前Activity處於後台,系統
* 資源緊張將其殺死,用戶又啟動該Activity,這兩種情況下onRestoreInstanceState
* 都被調用,在onStart之後。
*/
protected void onRestoreInstanceState(Bundle savedInstanceState) {
System.out.println(onRestoreInstanceState);
super.onRestoreInstanceState(savedInstanceState);
}
public void click(View view) {
Intent intent = new Intent(this,SecondActivity.class);
startActivity(intent);
}
}
7 SecondActivity的內容如下:
package com.itheima.lifecycle;
import android.app.Activity;
import android.os.Bundle;
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
}
本文是在完成了Android百度地圖應用開發基礎知識的基礎上繼續實現的。本文實例為大家分享了Android如何顯示地圖,並為後續內容做准備,供大家參考,具體內容如下&nb
前置文章: 《Android 4.4 KitKat NotificationManagerService使用詳解與原理分析(一)__使用詳解》 概況 在上一
寫在前言的話:博主的身份如昵稱所寫(java培訓中的菜雞,對編程有興趣,自學android);此博客所有文章就是博主自己從網上學習,自己實踐後的理解,如有不對的地方歡迎指
很多時候,我們在使用應用時,會出現輸入法軟鍵盤彈出的問題,通常情況下,我們默認會使用戶點擊返回鍵或者下一步對軟鍵盤進行隱藏。為了更好的體驗,我們可以實現當用戶使用完畢軟鍵