新手上路,請多多指教!
Activity是什么?
Activity英文譯為:活動,
Activity是安卓四大組件(Activity、Service、ContentProvider、BroadcastReceiver)之一,它是一個界面,用戶可以通過操作與這個“界面”進行互動從而實作某些操作,
Activity的生命周期
onCreate()
在Activity第一次啟動的時候執行
onStart()
在Activity界面加載顯示出來的時候執行
onResume()
在Activity解除了被鎖屏狀態或者被其他東西蓋住了,系統就會呼叫onResume()方法,讓Activity再次今入運行狀態
onPause()
在Activity被其他東西覆寫住了(對話框)或者鎖屏了是呼叫
onStop()
在Activity轉到新的Activity或者home箭呼叫
onDestroy()
在Activity被銷毀的時候執行

ps:圖片來源于網路
創建一個Activity
使用軟體:android studio

Activity之間的“溝通的橋梁”——Intent
Intent是什么
Intent譯為“意圖”,可以指定當前組件要執行的動作、用來不同組件之間的資料傳遞、啟動Activity和Service、發送廣播等
顯示意圖
可以直接通過類名開啟指定的目標組件
隱式意圖
可以用來啟動其他應用的組件,Android會通過intent filter的action、data或者category來匹配目標的組件

啟動一個Activity
Intent的構造方法

一般啟動
//創建一個Intent物件
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
//啟動Activity
startActivity(intent);
帶結果啟動
第一個引數是一個Intent物件,第二個引數是請求碼
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivityForResult(intent,2);
回傳Activty
一般回傳
呼叫finsh()方法
帶結果回傳
第一個引數:引數型別是int,是用于知道是誰回傳的
第二個引數:引數型別是Intetn的實體化物件
int result_Code=3;
Intent data=new Intent();
setResult(result_Code,data);
finish();
接受回傳的資料
當我們通過第一個Acticity通過startActivityForResult()啟動了另一個Activity,并且第二個也是帶結果的回傳,那要怎么處理另外一個的“回傳”呢?
重寫第一個Activiy的onActivityResult()方法
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==2&&resultCode==3){
Toast.makeText(MainActivity.this,data.getStringExtra("Result"),Toast.LENGTH_SHORT).show();
}
}
向要啟動的Activity傳遞資料
通過Intent.putExtra()方法把資料存盤進去,當調到下個Activity的時候通過Intent.getXXXExtra()方法將資料取出來
//MainActiviy
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
intent.putExtra("Messsage","This is MainAcitivity's message!");
//啟動Activity
startActivity(intent);
//SencondActivity
Intent secondInent=getIntent();
Toast.makeText(SecondActivity.this,intent.getStringExtra("Message"),Toast.LENGTH_SHORT).show();



轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/297607.html
標籤:其他
下一篇:Android 記憶體泄露分析
