Android 多個Activity間物件共享

2021-07-06 02:27:05 字數 1214 閱讀 4812

這裡總結了android中幾種物件共享的方式,便於以後查閱。

這種方式比較常見,有很多的介紹,主要通過 intent型別,將要傳遞的資料與乙個key繫結,在另一activity中通過key進行取值。但此方式的問題是可以傳遞 (共享)的 資料型別有限,比如遇到不可序列化的資料bitmap,inputstream, 或者linklist鍊錶等等資料型別就不太好用。有時候不得已需要自己去實現序列化的介面。它比較適用於傳遞一些簡單型別的值。

在sendactivity中定義的函式:

private void execintenttransfer()

在接收函式中定義的函式:

public class activitysharewithintent  extends activity  

}

其中,接收端用到的key和傳送端的要保持一致。

這種方式使用簡單,缺點是使用了靜態全域性變數,對於多執行緒或有多個模組修改其值的時候,會有一定的風險。它可以傳遞任意型別的變數。

傳送端的程式,其實就是向全域性變數賦值。 注意這裡要用 this.finish()函式,而不能使用system.exit()函式,否則物件被銷毀值也就不存在了,無法完成傳遞。

private void execstatictransfer()

接收端的程式,很簡單,只是從靜態變數中取值。

public class activitysharewithstatic  extends activity  

}

這裡file和sqlite比較好理解,檔案和資料庫也比較常用,都是可以將資料固化在系統中。 此處將使用sharedperference的例子。

這裡主要使用的是editor,向editor中新增鍵,並且儲存相應的值,在使用時再通過鍵把值取出。

傳送端:

private void execsharedperferencetransfer()

接收端:

public class activitysharewithextstorage  extends activity  

}

}

}工程原始碼

android 通過uri啟動Activity

uri定義了通訊協議 uri uri uri.parse com.sds.gw 通過action和uri呼叫第二個程序中的activity,並傳遞資料 intent invokeintent new intent null,uri invokeintent.putextra prm1 z invok...

Android 實現透明效果的 Activity

android 系統提供了將 activity 設定為透明的主題 android style theme.translucent 該屬性同一時候支援隱藏 titlebar 和全屏顯示。僅僅須要在androidmanifest.xml配置檔案裡為相應的activity 新增該屬性就可以。假設希望實現半...

Android之跳轉 普通類到Activity

android之跳轉 普通類到activity 我們在做專案時,經常會遇見一種情況,就是跳轉,而我們遇見的不一定都是activity到activity之間的跳轉。也許就是乙個普通類到activity的跳轉。下面我就演示一下怎樣去跳 首先我們要寫乙個基類,並寫出構造方法傳入activity引數。pub...