1. 程式人生 > >安卓開發 Activity入門

安卓開發 Activity入門

androidm cte hello star tin 暫停 app manifest quest

生命周期

Activity包含5種狀態,涉及7種方法

  1. 啟動狀態

  2. 運行狀態 ***

    即使內存不足,Android先銷毀棧底的Activity,來確保當前Activity正常運行

  3. 暫停狀態 (可見,無法獲取焦點

  4. 停止狀態 (完全不可見

  5. 銷毀狀態

技術分享圖片

  OnCreat 創建時調用,初始化設置

  OnStart Activity即將可見時調用

  OnResume 獲取焦點開始與用戶交互時調用

  OnPause 在當前Activity被其他Activity覆蓋或鎖屏時調用

  OnStop 在Activity對用戶不可見時調用

  OnDestroy

  OnRestart

Activity的啟動模式

  standard模式

  singleTop模式

  singleTask模式

  singleInstance模式

Activity 之間的跳轉

  Intent

顯式意圖

Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);

隱式意圖

Intent intent = new Intent();
intent.setAction("android.intent.action.VIEW
"); startActivity(intent);

category是一個默認值的話,可以省略不屑

在清單文件 AndroidManifest.xml 配置 <intent-filter> 如下所示

 

<intent-filter tools:ignore="AppLinkUrlError">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="
http" /> </intent-filter>

數據傳遞

intent.putExtra("data", "draymonder");

數據回傳

// 請求方
Intent intent = new Intent(this, MainActivity.class);
startActivityForResult(intent, 1);



// 接收方回傳數據
Intent intent  = new Intent();
intent.putExtra("data", "Hello");
setResult(1, intent);

  

// 請求方 因為 接收方Activity結束後 會調用回傳函數
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityReslt(requestCode, resultCode, data);
    if(requestCode == 1) {
        if(resultCode == 1) {
            String str = data.getStringExtra("data");
            System.out.println(str);
        }
    }
}

Bundle 傳遞信息

Intent intent = new Intent(this, Main2Activity.class);
Bundle bundle = new Bundle();
bundle.putString("data", "draymonder");
bundle.putInt("height", 173);
intent.putExtras(bundle);
startActivity(intent);

獲取信息

Bundle bundle  = this.getIntent().getExtras();
String str = bundle.getString("data");
int height = (Integer) bundle.get("height");
Log.i("Main2",str + " " + height);

安卓開發 Activity入門