亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Android Activity的生命周期和Activity間傳遞數

系統 2179 0

Activity 生命周期:

使用Bundle 在Activity 間傳遞數據1:
1.1從源Activity 中傳遞數據

    Intent openWelcomeActivityIntent=new Intent();
Bundle myBundelForName=new Bundle();
myBundelForName.putString("Key_Name",inName.getText().toString());
myBundelForName.putString("Key_Age",inAge.getText().toString());
openWelcomeActivityIntent.putExtras(myBundelForName);
openWelcomeActivityIntent.setClass(AndroidBundel.this, Welcome.class);
startActivity(openWelcomeActivityIntent);
  

?

1.2目標Activity 中獲取數據

    //從Intent 中獲取數據
Bundle myBundelForGetName=this.getIntent().getExtras();
String name=myBundelForGetName.getString("Key_Name");
myTextView_showName.setText("歡迎您進入:"+name);
  

使用Bundle 在Activity 間傳遞數據2:
2.1從源請求Activity 中通過一個Intent 把一個服務請求傳到目標Activity 中

//從Intent 中獲取數據

    Bundle myBundelForGetName=this.getIntent().getExtras();
String name=myBundelForGetName.getString("Key_Name");
myTextView_showName.setText("歡迎您進入:"+name);
private Intent toNextIntent;//Intent 成員聲明
toNextIntent=new Intent();//Intent 定義
toNextIntent.setClass(TwoActivityME3.this, SecondActivity3.class);
//設定開啟的下一個Activity
startActivityForResult(toNextIntent, REQUEST_ASK););
  

2.2開啟Intent 時候,把請求碼同時傳遞在源請求Activity 中等待Intent 返回應答結果,通過重載onActivityResult()方法

@Override

    protected void onActivityResult(int requestCode,int resultCode,Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  if(requestCode==REQUEST_ASK){
    if(resultCode==RESULT_CANCELED){
      setTitle("Cancel****");
    }else if(resultCode==RESULT_OK){
      showBundle=data.getExtras();//從返回的Intent中獲得Bundle
      Name=showBundle.getString("myName");//從bundle中獲得相應數據
       text.setText("the name get from the second layout:\n"+Name);
     }
    }
}
  

? 第一個參數是你開啟請求Intent時的對應請求碼,可以自己定義。
? 第二個參數是目標Activity返回的驗證結果碼
? 第三個參數是目標Activity返回的Intent
2.3目標Activity 中發送請求結果代碼,連同源Activity 請求的數據一同綁定到Bundle
中通過Intent 傳回源請求Activity 中

  1. backIntent= new ?Intent(); ??
  2. stringBundle= new ?Bundle(); ??
  3. stringBundle.putString( "myName" ,?Name); ??
  4. backIntent.putExtras(stringBundle); ??
  5. setResult(RESULT_OK,?backIntent); //返回Activity結果碼 ??
  6. finish();??


Android Activity的生命周期和Activity間傳遞數據

?

方法名稱
描述
Killable?(能否被殺掉)
下一個調用的方法
當這個Activity第一次被創建的時候,調用此方法。這個方法通常用于:1、為Activity設置所要使用的布局文件2、為按鈕綁定監聽器等靜態的設置操作。
No
當Activity處于可見狀態時,調用此方法。
No
開始與用戶進行交互時(能夠獲得用戶焦點,可以進行點擊等操作的時候),調用此方法。
No
之前被停止,現在重新啟動,調用此方法。
No
當系統啟動另外一個新的Activity時,先調用前一個Activity的此方法。這個方法通常用于:保存現有的Activity中的數據、停止動畫等,這個實現方法必須非常快。
Yes
當Activity處于不可見狀態時(現有的Activity被新的Activity完全覆蓋時),調用此方法。
注:如果只是在現有的Activity中彈出一個對話框,沒有完全覆蓋現有的Activity的話是不會調用此方法的。
Yes
銷毀Activity。
有兩種情況會對Activity進行銷毀:1、在系統不足以支撐現有的應用程序的情況下,系統會關閉(銷毀)掉一部分系統認為不必要的Activity,以節省空間。2、程序中手動調用finish()方法進行銷毀。
Yes
nothings
關于能否被殺掉:當一個Activity調用了onPause()、onStop()或onDestroy()方法( Killable? 為Yes的方法),而系統在一定情況下(如系統不足以支撐現有的應用程序的情況下),會先關閉(銷毀)掉這部分Activity。

實例:創建一個 Android 應用程序,寫兩個 Activity ,都實現以上 7 個方法,通過從第一個 Activity 跳轉到第二個 Activity ,然后點擊模擬器右側的返回按鈕,根據應用程序中輸出的內容觀察 Activity 的生命周期。

在這里順便大致記錄一下開發步驟:

1 、創建一個 Android 應用程序

2 、寫兩個 Activity FirstActivity 、 SecondActivity ),都實現以上 7 個方法,并都輸出一句語句。

3 、因為要從 FirstActivity 跳轉到 SecondActivity ,所以要在 FirstActivity 的布局文件中添加一個按鈕,并且要寫一個監聽器,為按鈕綁定 OnclickListener 事件。

4 、不要忘記將新創建的 Activity 添加到 AndroidManifest.xml 文件中。

5 、然后運行程序觀察。

(這里只大致講了一下開發流程沒有將具體的代碼貼出來,現在將程序打包了,有需要的可在附件中下載)

運行程序:

1 、當程序剛開始運行 FirstActivity 的時候,控制臺輸出以下內容:

從控制臺輸出內容來看,程序先執行了 FirstActivity onCreate() 方法,然后再依次執行了 onStart() onResume() 方法。

2 、當點擊 FristActivity 上的按鈕時,控制臺輸出以下內容:

從控制臺輸出內容來看,程序先調用了 FirstActivity onPause() 方法,然后再一次調用了 SecondActivity onCreate() 、 onStart() onResume() 方法,最后調用了 FirstActivity onStop() 方法。

3 、點擊模擬器右側的返回按鈕,控制臺輸出以下內容:

Android Activity的生命周期和Activity間傳遞數據

從控制臺輸出內容來看,程序先調用了 SecondActivity onPause() 方法,然后再依次調用了

FirstActivity onRestart() onStart() 、 onResume() 方法,再調用了 SecondActivity onStop() 、 onDestroy() 方法。

注意:當點擊返回的時候,這里調用的不是 FirstActivity onCreate() 方法而是 onRestart() 方法,因為在之前 FirstActivity 已經被創建過了并且沒有銷毀,只要當 FirstActivity 銷毀了再調用 FirstActivit y 的時候才會調用 onCreate() 方法。

Android Activity的生命周期和Activity間傳遞數據


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 元龙第三季动漫在线观看免费版 | 欧美日本在线 | 欧美日韩中文一区二区三区 | 国产成视频| 青青草狠狠干 | 国产精品福利久久香蕉中文 | 欧美激情精品久久久久久久久久 | 人人做天天爱夜夜爽中字 | 最新69成人精品毛片 | 婷婷丁香在线视频 | 好吊妞精品视频 | 九九视频在线播放 | 涩涩一区 | 日本久操视频 | 国产精品四虎在线观看免费 | 国产人成久久久精品 | 国产美女午夜精品福利视频 | 久久精品无遮挡一级毛片 | 91成人免费观看在线观看 | 国产精品亚洲综合 | 97久久精品人人澡人人爽 | 免费看在线爱爱小视频 | 亚洲一区在线视频 | 再猛点深使劲爽日本免费视频 | 在线免费一级片 | 五月激情综合网 | 国产伦理一区二区三区 | 成人网18免费网站在线 | 免费国产午夜高清在线视频 | 奇米网在线视频 | 国产伦理精品 | 国产日韩一区二区三区在线播放 | 青青热久免费精品视频在线观看 | 毛片网站免费 | 色狠狠色综合吹潮 | 91网红福利精品区一区二 | 四虎影院在线观看网站 | 黄色片网站大全 | 天天射天天添 | 四虎最新网址在线观看 | 热综合一本伊人久久精品 |