Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android四大組件之一:activity

Android四大組件之一:activity

編輯:關於Android編程

一:顯示意圖

應用場景:在應用程序內部進行跳轉。 缺點:耦合性較高
常規使用方式: 在AndroidManifest中加入一個新的activity標簽 Intent intent = new Intent(); intent.setClass(getApplicationContent(),secondActivity.class); startActivity(intent);

二:隱式意圖

應用場景:在不知道某一應用程序的類名,包名,並且引用不到時。可以跳轉到其他應用。帶參數訪問浏覽器的實現。 優點:耦合性較低 注意:data與type不可以分開寫,使用setDataAndType()方法 常規使用方式: 在AndroidManifest中加入一個新的activity標簽

//默認格式
//數據標識
//數據類型
Intent intent = new Intent(); intent.setAction("動作");
intent.setDataAndType(Uri.parse("abc:123"),"list/person"); //123為所攜帶的數據 startActivity(intent);

三:Intent傳遞數據

應用場景:傳遞數據,RP計算器。 Bundle:數據捆,打包傳輸
常規使用方式1: 第一個頁面 Intent inent = new Intent(); intent.setClass(this,secondActivity.class); Bundle bundle = new Bundle(); //打包發送 bundle.putString("name",name); intent.putExtra("maps",bundle); startActivity(intent); 第二個頁面 TextView tv = new TextView(this); Intent intent = this.getIntent(); Bundle bundle = intent.getBundleExtra("maps"); //獲取打包數據bundle String name = bundle.getString("name'); //取出需要的數據 tv.setText(name); setContentView(tv);
常規使用方式2: 創建對象類(javabean)Person 實現Serializable接口 private static final long serialVersionUID = 1L;
第一個頁面 Intent intent = new Intent(); intent.setClass(this,secondActivity.class); Person person = new Person(name); //序列化對象傳遞 intent.putExtra("person',person); startActivity(intent);
第二個頁面 TextView tv = new TextView(this); Intent intent = this.getIntent(); Person p = (Person)intent.getSerializableExtra("person'); String name = p.getName();

四:Intent返回數據

常規使用方式 第一個頁面 將startActivity(intent); 改為 startActivityForResult(intent,1000); //1000為請求碼。理解為標識 實現onActivityResult方法 if(requestCode == 1000 && resultCode == Activity.RESULT_OK) { String rpText = data.getStringExtra("rpText"); Toast.makeText(this,rpText,1).show(); } 第二個頁面 實現onBackPressed方法 //返回鍵點擊事件 去掉繼承父類方法,因為繼承後點擊返回鍵將直接返回 Intent data = new Intent(); data.putExtra("rpText",text); setResult(Activity.RESULT_OK,data); //將返回碼改為0 this.finish(); //即返回事件

五:Activity生命周期

onPause方法:暫停。在activity被另一個activity給蓋住時(蓋住一部分),調用onPause,跑到暫停狀態。 onResume方法:焦點激活。在onPause狀態時,把activity上的界面給關掉就返回到,焦點狀態onResume。 onStop方法:停止。當activity在焦點時,有一個界面把activity完全蓋住時,先調用onPause方法,再調用onStop方法 進入此狀態。 onRestart方法:重啟。當activity處於停止狀態時,把上面的activity給關掉,這時候會調用 onRestart->onstart->onResume
常用使用方式 onCreate : 初始化界面參數時 onDestory ; 釋放資源 onResume : 界面獲取焦點時回調,讓界面動起來 onPause : 來一個界面蓋住了一部分activity,動作:停止動態刷新數據

六:橫豎屏切換Activity的生命周期

默認情況下會重新加載activity,容易重新加載數據,造成數據丟失。如游戲。 具體流程:onPause -> onStop ->onDestory -> onCreate ->onStart ->onResume
避免橫豎屏切換重新創建activity 在清單文件的activity節點中加入:android:configChanges="orientation|keyboardHidden "

七:任務棧

為了提高用戶體驗 一個應用程序包含多個activity 棧的頂部的activity會在界面中顯示,獲取焦點。 任務棧的特點:先進後出,後進先出。

八:雜七雜八

AndroidManifest文件中含有如下過濾器的activity組件為默認啟動組件,應用程序啟動時,系統自動調用它。




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