1. 程式人生 > >Android中Activity之間通訊

Android中Activity之間通訊

一、使用Intent

    在 Android 中,不同的 Activity 例項可能執行在一個程序中,也可能執行在不同的程序中。因此我們需要一種特別的機制幫助我們在 Activity 之間傳遞訊息。Android 中通過 Intent 物件來表示一條訊息,一個 Intent 物件不僅包含有這個訊息的目的地,還可以包含訊息的內容,這好比一封 Email,其中不僅應該包含收件地址,還可以包含具體的內容。對於一個 Intent 物件,訊息“目的地”是必須的,而內容則是可選項。

在上面的例項中通過 Activity. startActivity(intent)啟動另外一個 Activity 的時候,我們在 Intent 類的構造器中指定了“收件人地址”。

如果我們想要給“收件人”Activity 說點什麼的話,那麼可以通過下面這封“e-mail”來將我們訊息傳遞出去:

 

那麼“收件人”該如何收信呢?在 OtherActivity類的 onCreate()或者其它任何地方使用下面的程式碼就可以開啟這封“e-mail”閱讀其中的資訊:

 

上面我們通過 bundle物件來傳遞資訊,bundle維護了一個 HashMap<String, Object>

物件,將我們的資料存貯在這個 HashMap 中來進行傳遞。但是像上面這樣的程式碼稍顯複雜,因為 Intent 內部為我們準備好了一個 bundle,所以我們也可以使用這種更為簡便的方法:

 

接收:

 

二、使用SharedPreferences 

    SharedPreferences 使用 xml 格式為 Android 應用提供一種永久的資料存貯方式。對於一個 Android 應用,它存貯在檔案系統的/data/ data/your_app_package_name/shared_prefs/目錄下,可以被處在同一個應用中的所有 Activity 訪問。Android 提供了相關的 API 來處理這些資料而不需要程式設計師直接操作這些檔案或者考慮資料同步問題。

 

三、其他方式

Android 提供了包括 SharedPreferences 在內的很多種資料存貯方式,比如 SQLite,檔案等,程式設計師可以通過這些 API 實現 Activity 之間的資料交換。如果必要,我們還可以使用 IPC 方式。

相關推薦

AndroidActivity之間通訊

一、使用Intent     在 Android 中,不同的 Activity 例項可能執行在一個程序中,也可能執行在不同的程序中。因此我們需要一種特別的機制幫助我們在 Activity 之間傳遞訊息。Android 中通過 Intent 物件來表示一條訊息,一個 Inten

AndroidActivity之間通訊和傳值

Android 中通過 Intent 物件來表示一條訊息,一個 Intent 物件不僅包含有這個訊息的目的地,還可以包含訊息的內容,通過 Activity. startActivity(intent

AndroidActivity之間引數傳遞

Intent:一直穿梭在Activity之間,它不光只是為了使Activity之間進行跳轉。在跳轉的時候,還可以進行Acivity之間的引數傳遞。 下面舉幾個列子。以MianActivity,TheActivity為例子。     MianActivity類     In

Androidactivity之間如何傳遞Hashmap資料

我的使用場景是當一個頁面需頁面中的listview中的hashmap的資料時要另一個,就要用到了傳遞hashmap資料。 在傳送方,我的程式碼是這樣的: package cn.oddcloud.ww

androidfragment與activity之間通訊原理以及例子

首先,如果你想在android3.0及以下版本使用fragment,你必須引用android-support-v4.jar這個包 然後你寫的activity不能再繼承自Activity類了,而是要繼承android.support.v4.app.FragmentA

Android Service與Activity之間通訊:通過Binder物件、Broadcast廣播

From:http://blog.csdn.net/xiaanming/article/details/9750689 From:http://blog.csdn.net/ameyume/article/details/6290137 From:http://blog.c

AndroidActivity與Fragment之間資料相互傳遞

一、Activity啟動Activity Intent intent = new Intent(this,MainListActivity.class); startActivity(intent); Activity與Activity傳遞資料 I

AndroidActivity之間傳遞對象

this .get tin 方式 art desc 內容 ext pri 在非常多時候,我們須要在Activity之間傳遞對象,比方當你點擊了某列表的item,須要傳遞給下一個Activity該對象,那我們須要該怎麽做呢? Android支持兩種傳遞對象的方式。一種

AndroidActivity被系統會收前頁面信息保存

prot 判斷 edi 1.5 protected 是否為空 信息保存 android and 1、重寫onSaveInstanceState方法 protected void onSaveInstanceState(Bundle outState) { super

android基礎--Activity之間動畫

這個工程裡面收集了一些常用的動畫檔案在工程目錄anim下(都加了註釋,大家可以直接用),至於動畫標籤裡面的屬性大家可以參考如下路徑的官方文件:太全了,有些還可以直接使用的... developers/Dev Guide/Application Resources/Resources Type/A

Androidactivity和xml的第一個專案

我們使用的手機不光是隻用到一個應用程式,比如在淘寶介面要付款的時候可能會啟動微信付款等,這就相當於在淘寶的Activity中啟動了微信的Activity。還比如說當我們註冊一個網站是,可能會給自己傳送一條簡訊作為驗證,這就是在當前的Activity中啟動了簡訊的Activity。之前對比的MVC設

Service和IntentService,Service和Activity之間通訊

Service /** * Android四大元件之一,Service 是長期執行在後臺的應用程式元件。 * Service 不是程序,也不是執行緒,它和應用程式在同一個程序中 * Service中不能

Android 的Socket通訊

       公司新專案中涉及到Socket通訊有關的東西,雖然之前接觸到一點,不過好長時間不用基本上忘個七七八八了,網上查了查資料,根據專案中的需求自己做了個小Demo,歡迎大家指正. 1.需求:       1.1:客戶端測量完畢後,將測量資料以Socket的方式上傳

androidActivity生命週期的詳細過程分析

android中Activity生命週期的詳細過程分析 Activity是安卓中相當重要的一個元件,理解它有利於我們後期更好的進行相關的開發,接下來我將演示一個demo來詳細講述Activity的生命週期過程。 首先寫兩個佈局檔案ks.xml和ks1.xml,用來實現兩個介面的跳轉,上面

AndroidActivity啟動過程探究

首先追溯到Activity的啟動,隨便啟動一個自己寫的demo專案,使用DDMS進行debug標記,然後在Debug中把主執行緒暫停,可以看到呼叫棧。如下圖所示: 於是我們先看android.app.ActivityThread的main()方法。 android.a

Android實現activity之間的傳值方法總結

今天寫這篇文章主要是因為自己這段時間在學習安卓的時候實現不同activity之間傳值問題進行一個小小的總結。 【問題】 舉個簡單例子,比如我要在做一個小專案要獲取使用者的個人資訊,在登入的時候我們需要儲存使用者的資訊,或者我們需要檢視個人的資訊,那實現這個小功能怎麼辦呢。我想你們肯恩會跟

AndroidActivity的啟動模式(LaunchMode)和使用場景

一、為什麼需要啟動模式 在Android開發中,我們都知道,在預設的情況下,如果我們啟動的是同一個Activity的話,系統會建立多個例項並把它們一一放入任務棧中。當我們點選返回(back)鍵,這些Activity例項又將從任務棧中一一移除,遵循的原則是“

Android串列埠通訊的問題

    公司的專案是要做一個應用於工廠的一個物理網系統,android方面需要應用到串列埠通訊 .通過上網查詢到Google官方api,當時為了快速,把這個demo 依賴了 在application裡面生成了getSerialPort() 函式,用來獲取到S

AndroidActivity之間傳遞引數並跳轉

當前頁面傳出引數: public void First(View v){ //新建一個顯式意圖,第一個引數為當前Activity類物件,第二個引數為你要開啟的Activity類 Intent intent =new Intent(FirstActivity

AndroidActivity四種啟動模式和taskAffinity屬性詳解

在android應用開發中,打造良好的使用者體驗是非常重要的。而在使用者體驗中,介面的引導和跳轉是值得深入研究的重要內容。在開發中,與介面跳轉聯絡比較緊密的概念是Task(任務)和Back Stack(回退棧)。activity的啟動模式會影響Task和Back Stack