1. 什么是Activity?
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設計、網(wǎng)站建設與策劃設計,南陵網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:南陵等地區(qū)。南陵做網(wǎng)站價格咨詢:028-86922220是一個可以與用戶交互的屏幕,例如打電話、拍照、地圖、日歷的界面
2. Activity 有7個生命周期方法(生命周期描述的是一個對象從創(chuàng)建(new出來)到死亡的過程中會執(zhí)行的方法):
onCreate: 在Activity對象被第一次創(chuàng)建時調(diào)用
onStart: 當Activity變得可見時調(diào)用該函數(shù)
onResume: 當Activity開始準備于用戶交互時調(diào)用該方法
onPause: 當系統(tǒng)將啟動另外一個Activity之前調(diào)用該方法
onStop: 當前Activity變得不可見時調(diào)用該方法
onDestroy:當前Activity被銷毀之前將會調(diào)用該方法
onRestart:當一個Activity再次啟動之前將會調(diào)用該方法
1)當從第一個Activity進入第二個Activity,調(diào)用第一個activity的onPause,再調(diào)用第二個activity的onCreate、onStart、onResume,然后調(diào)用第一個activity的onStop
2)當從第二個Activity返回第一個Activi時,調(diào)用第二個activity的onPause,再調(diào)用第一個activity的onRestart、onStart、onResume,然后調(diào)用第二個activity的onStop、onDestroy
3. 生命周期可分為三個狀態(tài):無論出于哪一種狀態(tài),Activity不會自動釋放自己占有的資源 -- 通過在onPause、onStop、onDestroy中寫代碼釋放資源
1)Resumed:Activity對象運行狀態(tài)
2)Paused: 另一個Activity位于前端,但是本Activity還可見 ,如 對話框
3)Stopped:另一個Activity位于前端,完全遮擋本Activity
4. 綁定布局。每新建一個activity,就要繼承(extends)Activity類,復寫onCreate(bundle)方法,然后綁定此activity的布局文件XML
public class BaseSwipeBacek extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_layout); } }
5.創(chuàng)建的activity必須在AndroidManifest.xml里面注冊,否則運行會拋出異常
//包名.類名 (包名可以省略)
6.啟動Activity
Intent intent = new Intent(); intent.setClass(this, SecondActivity.class); //this為Context對象,即當前Activity對象 startActivity(intent);
7.兩個Activity之間數(shù)據(jù)傳遞
基本數(shù)據(jù)類型可以通過Intent進行傳遞
1)傳遞數(shù)據(jù)
Intent intent = new Intent(); intent.setClass(this, SecondActivity.class); intent.putExtra("key", "數(shù)據(jù)"); //第一個參數(shù)數(shù)Key,第一個參數(shù)是要傳遞的數(shù)據(jù),可以是任意基本數(shù)據(jù)類型 startActivity(intent);
2)取出數(shù)據(jù)
Intent intent = getIntent(); String str = intent.getStringExtra("key"); //參數(shù)為Key,必須與傳遞過來的key一致
3) 如果要傳遞對象,可以通過Serializable序列化后在進行傳遞
讓類實現(xiàn)Serializable接口,通過intent.getSerializableExtra取出對象
public class Data implements Serializable{ private static final long serialVersionUID = -3445893843765959236L; //序列化的串行版本標示 public String name; public int age; public Data(String name, int age){ this.name = name; this.age = age; } }
public class FirstActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_layout); Data data = new Data("小明",16); Intent intent = new Intent(); intent.setClass(this, SecondActivity.class); intent.putExtra("key", data); startActivity(intent); } }
public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second_layout); Intent intent = getIntent(); Data data = (Data) intent.getSerializableExtra("key"); } }
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。