Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 第二個activity,啟動第二個activity

第二個activity,啟動第二個activity

編輯:關於android開發

第二個activity,啟動第二個activity


Android四大組件

  • Activity
  • BroadCastReceiver
  • Service
  • ContentProvider

創建第二個Activity

創建第2個Activity的過程

  • 1. 創建class類繼承Activity
  • 2. 創建布局文件,作為Activity的顯示內容
  • 3. 在清單文件中注冊Activity

清單文件的配置

  • 新創建的activity,必須在清單文件中做配置,否則系統找不到,在顯示時會直接報錯

    <activity android:name="com.itheima.createactivity.SecondActivity"></activity>
    
  • 只要有以下代碼,那麼就是入口activity,就會生成快捷圖標

    <intent-filter>
            <action android:name="android.intent.action.MAIN" />
    
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    
  • 如果Activity所在的包跟應用包名同名,那麼包名可以省略不寫 如android:name=“.SecondActivity”

Activity的跳轉

隱式跳轉

  • 一個Activity如果需要隱式跳轉,那麼在清單文件中必須添加以下子節點

    <intent-filter >
        <action android:name="com.itheima.sa"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
    
  • action節點的name是自己定義的,定義好之後,這個name的值就會成為這個activity動作,在隱式啟動Activity時,意圖中設置的action必須跟"com.itheima.sa"是完全匹配的
  • <data android:scheme="" android:mimeType=""/>隱式意圖需要需要給傳遞對象的時候 需要帶上該條語句 例如android:scheme=“tell” android:mimeType="" 表示傳入參數的類型

應用場景

  • 顯示意圖:啟動同一個應用中的Activity
  • 隱式意圖:啟動不同應用中的Activity
  • 再啟動效率上,隱式遠遠低於顯式
  • 如果系統中有多個Activity與意圖設置的Action匹配,那麼在啟動Activity時,會彈出一個對話框,裡面包含所有匹配的Activity

Activity任務棧

  • 應用運行過程中,內存中可能會打開多個Activity,那麼所有打開的Activity都會被保存在Activity任務棧
  • 棧:後進先出,最先進棧,就會最後出棧

Activity的啟動模式

  • 標准模式:默認就是先進後出
  • singleTop:如果目標Activity不在棧頂,那麼就會啟動一個新的Activity,如果已經在棧頂了,那麼就不會再啟動了
  • singleTask:如果棧中沒有該Activity,那麼啟動時就會創建一個該Activity,如果棧中已經有該Activity的實例存在了,那麼在啟動時,就會殺死在棧中處於該Activity上方的所有Activity全部殺死,那麼此時該Activity就成為了棧頂Activity。
    • singleTask的作用:保證整個棧中只有一個該Activity的實例
  • singleInstance:設為此模式的Activity會有一個自己獨立的任務棧,該Activity的實例只會創建一個,保存在獨立的任務棧中
    • singleInstance的作用:保證整個系統的內存中只有一個該Activity的實例

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