Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android基礎之Activity,androidactivity

Android基礎之Activity,androidactivity

編輯:關於android開發

Android基礎之Activity,androidactivity


一、什麼是Activity

  Activity是Android四大組件之一,並且Activity是組件中的重中之重。

  Activity是為用戶提供一個用於信息交互的窗口。

二、如何去創建Activity

  1.新建一個繼承Activity的子類

1 public class MainActivity extends Activity {
2 
3     @Override
4     protected void onCreate(Bundle savedInstanceState) {
5         super.onCreate(savedInstanceState);
6         setContentView(R.layout.activity_main);//加載布局
7     }
8 }

  2.需要在功能清單AndroidManifest.xml文件中配置新建的Activity類

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="com.example.newactivity"
 4     android:versionCode="1"
 5     android:versionName="1.0" >
 6 
 7     <uses-sdk
 8         android:minSdkVersion="8"
 9         android:targetSdkVersion="17" />
10 
11     <application
12         android:allowBackup="true"
13         android:icon="@drawable/ic_launcher"
14         android:label="@string/app_name"
15         android:theme="@style/AppTheme" >
16         <activity
17             android:name="com.example.newactivity.MainActivity"
18             android:label="@string/app_name" >
19             <intent-filter>
20                 <action android:name="android.intent.action.MAIN" />
21 
22                 <category android:name="android.intent.category.LAUNCHER" />
23             </intent-filter>
24         </activity>
25     </application>
26 
27 </manifest>

三、任務棧

  任務棧的由來:

    Android應用程序有一個或多個Activity組件或其它組件組成,為了記錄用戶都開啟哪些Activity,以及開啟這些Activity的先後順序。

  任務棧的特點:

    1、當一個Android應用程序開啟後Android操作系統就會為它分配一個任務棧,當所有的activity都退出的時候,任務棧就被清空了;

    2、任務棧的id是一個自增長的int數據類型,可以通過getTaskId()方法獲取任務棧的id;

    3、Android操作系統裡存在多個任務棧,一個Android應用程序可以有一個或多個任務棧;

    4、默認情況下,關閉掉一個應用程序就清空了Android操作系統為該應用程序分配的任務棧,但應用程序的進程還會保留;

四、Activity的啟動模式

  Activity的啟動模式總共有四種模式,分別是standard(默認)、singleTop、singleTask、singleInstance

  1.standard模式

  在這種啟動的模式下,每次激活Activity時(startActivity)都創建一個新的Activity實例並放入任務棧的棧頂

  2.singleTop

  在這種啟動的模式下,如果singleTop在任務棧的棧頂時,不需要在創建新的Activity,調用onNewIntent()方法(第一次啟用singleTop不會調用onNewIntent()方法),

  否則要重新創建Activity實例,但不會調用onNewIntent();

  3.singleTask(常用)

  在這種啟動模式下,如果singleTask在任務棧的棧頂時,不需要創建新的Activity,調用onNewIntent()方法;

  如果singleTask不在任務棧的棧頂,並且在任務棧中有singleTask時,也不需要重新創建新的Activity,而是調用onNewIntent()方法,並且在singleTask之上其它的Activity實例都將刪除

  4.singleInstance

  在這種啟動模式下,如果該Activity所在的Android程序激活過或被激活過它,會存在於單獨的任務棧中

  如果其它的Android程序啟動的時候,會重新激活該Activity,並且會調用該Activity中的onNewIntent()方法;

  另外一個app打開該Activity程序演示

  

 1 public class App02Activity extends Activity {
 2 
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_app02);
 7         ((Button) findViewById(R.id.access_bt)).setOnClickListener(new OnClickListener() {
 8             @Override
 9             public void onClick(View v) {
10                 Intent intent = new Intent("com.shxt.activity.singleinstance");
11                 startActivity(intent);
12             }
13         });
14     }
15 }

 

 1       <!-- 該Activity中的AndroidManifest.xml -->
 2         <activity
 3             android:name=".SingleInstanceActivity"
 4             android:launchMode="singleInstance" >
 5              <intent-filter>
 6                 <action android:name="com.shxt.activity.singleinstance" />
 7 
 8                 <category android:name="android.intent.category.DEFAULT" />
 9             </intent-filter>
10         </activity>

 

五、Activity生命周期

 一個Activity的完整生命周期:

void onCreate()

void onStart()

void onResume()

void onPause()

void onStop()

void onDestroy()

1.一個完整的生命周期,是由第一次調用onCreate()開始,直至調用onDestory()方法結束。

 Activity在onCreate()完成初始化,在onDestroy()中釋放所有的系統資源。

2.可視生命周期:該生命周期是由onStart()調用開始直到調用onStop()方法結束。在這之間,方法可以隨著應用程序是否為用戶可見而被多次調用

3.前台生命周期:是由onReusme()調用到onPause()方法為止。在此之間Activity處於激活狀態,可以和用戶進行交互。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved