1. 程式人生 > >求證 intent傳遞大資料限制

求證 intent傳遞大資料限制

例項1:傳遞一個大資料StringList

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import com.xuan.realm.utils.LogUtils;

import java.util.ArrayList;


public class MainActivity extends AppCompatActivity {
    private ArrayList<String> list = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 10_0000; i++) {
                    list.add(String.valueOf(i));
                }
            }
        }).start();
    }


    public void onTestActivity(View v) {
        TestActivity.launch(this, list);
    }
}
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;

import com.xuan.realm.utils.LogUtils;

import java.util.ArrayList;

/**
 * @author xuanyouwu
 * @email [email protected]
* @time 2016-05-08 16:08 */ public class TestActivity extends AppCompatActivity { private static final String KEY_STR_LIST = "str_list"; public static void launch(Context context, ArrayList<String> stringList) { Intent intent = new Intent(context, TestActivity.class); intent.putStringArrayListExtra(KEY_STR_LIST, stringList); context.startActivity(intent); } @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); LogUtils.d("------>getStrList:" + getIntent().getStringArrayListExtra(KEY_STR_LIST)); } }

執行平臺 avd  android 5.0 ram 1G:

異常: Caused by: android.os.TransactionTooLargeException: data parcel size 1996316 bytes

也就是不能超過1.9M 

執行平臺htc x920e  android 4.4 ram 2G:

異常黑屏 TransactionSize: scheduleLaunchActivity(), TransactionTooLargeException, data size = 1997332

比上一次大一點點 也近似1.9M

相關推薦

求證 intent傳遞資料限制

例項1:傳遞一個大資料StringList import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import com.x

JavaBinder: !!! FAILED BINDER TRANSACTION !!! intent傳遞資料異常解決

    在使用intent傳遞集合資料的時候,報了JavaBinder: !!! FAILED BINDER TRANSACTION !!! 錯誤,翻譯成中文就是“繫結器事務失敗”,實際的原因就是使用intent的時候攜帶的資料太大導致傳遞失敗。    

Activity之間傳遞資料問題

Android開發人員都知道,Intent適用於在不同的Activity之間傳遞資料,包括引數、字串、以及序列化的物件等。但是筆者所做的專案用到了使用Intent 傳遞Bitmap圖片物件,圖片的資料量相對來說是比較大的,那麼intent能否勝任傳遞圖片的任務呢? 首先很明

jdbc+struts axis 傳遞資料

使用list集合轉換成json的方式,用到的json    jar包 commons-beanutils-1.8.0.jar不加這個包  java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBe

Activity之間使用intent傳遞大量資料帶來問題總結

Activity之間使用Parcel傳遞大量資料產生的問題。Activity之間通過intent傳遞大量資料,導致新Activity無法啟動。Activity之間資料傳遞方式總結參考 這 裡。比較常用的

bundle及intent傳遞接收資料

在兩個Activity傳遞資料是我們通常都用intent來傳遞; 傳遞簡單資料型別時可以直接用inten.putExtras();也可以吧引數放到bundle接著intent.putExtras(bundle); 傳遞Intent intent = new Intent(

Android開發使用Intent傳遞複雜資料(List集合,Map等)

Intent(意圖)在Android開發中是用於在各個Activity之間傳輸資料用的。它可傳輸的資料形式主要有以下幾種:1、簡單資料。(使用Bundle即可)2、陣列。3、List集合。4、Map<String, Object>。(可以放在一個List集合裡傳輸

Activity間通過Intent傳遞資料的大小限制

http://blog.csdn.net/pingfangx/article/details/52093225 這個問題沒找到官方說明,針對網上的各種答案,自己實際測試了一下。 0x01結論 1.1傳512K以下的資料的資料可以正常傳遞。 1.2傳512K~102

Intent傳遞資料重複問題

Android解決Intent中的資料重複問題 轉載地址:http://www.cnblogs.com/anrainie/articles/2383941.html 最近在研究Android,遇到了一些Notification(通知)的問題: 1、Notification如何傳遞引數

資料之Spark(四)--- Dependency依賴,啟動模式,shuffle,RDD持久化,變數傳遞,共享變數,分散式計算PI的值

一、Dependency:依賴:RDD分割槽之間的依存關係 --------------------------------------------------------- 1.NarrowDependency: 子RDD的每個分割槽依賴於父RDD的少量分割槽。 |

不要讓你幾千的工資限制住你,學好資料,年薪50W不是夢

大資料應該學什麼?如果是有基礎就根據個人情況來定,如果是零基礎想學習大資料,大資料應該學什麼?大資料要學的東西有很多,下面列舉了一些學習大資料就該學習的技術,許多想學習大資料不知道大資料應該學什麼的,可以參考一下。 1.瞭解大資料理論   要學習大資料你至少應該知道什麼是大資料,大資料一般運用在什麼

學習資料開發零基礎是不是限制,小白能否快速學會?附上學習路線圖

  對於進入進入新的行業,尤其是IT行業,每個人都會有擔憂,這很正常,不論你有沒有過經驗都不免有些擔憂。一方面,是因為你在此之前總聽流言說程式設計如何如何難,工作是多麼多麼累,但它們就像老奶奶講的嚇人故事,是用來唬孩子們去學習社會科學而已。而另一方面,人們對於未知的事情總是充滿著

資料時代,“還原”鏈上資料傳遞數字價值,從使用Gikee開始

8月末、9月初,區塊鏈行業迎來一場大地震——多家區塊鏈媒體微信公眾賬號被永久封禁,其中不乏金色財經、火幣資訊、幣世界等大號。 這場封號風波其實並非空穴來風,今年 3 月,人民網旗下人民創投就曾公開發文批評區塊鏈媒體。如今,線上、線下一起遭遇最強監管,對於整個區塊鏈媒體們而言

ANDROID----使用Intent傳遞資料----startActivityForResult

eg: //這個是在第一個顯示的Activity中 Intent intent=new Intent(MainActivity.this,otherActivity.class); startActivityForResult(intent,requestCode); 在另外一個Activi

面試- 阿里-. 資料題目- 給定a、b兩個檔案,各存放50億個url,每個url各佔64位元組,記憶體限制是4G,讓你找出a、b檔案共同的url?

假如每個url大小為10bytes,那麼可以估計每個檔案的大小為50G×64=320G,遠遠大於記憶體限制的4G,所以不可能將其完全載入到記憶體中處理,可以採用分治的思想來解決。   Step1:遍歷檔案a,對每個url求取hash(url)%1000,然後根據所取得的

MySQL資料型別之BLOB與TEXT及其最儲存限制

https://blog.csdn.net/q3dxdx/article/details/51014357 BLOB,二進位制大物件(位元組流)。可以用來儲存圖片,聲音和視訊等二進位制檔案。沒有字符集的說法。 TEXT,文字大物件(字元流)

學習資料需要哪些條件?性別真的是限制嗎?

2018年的科技領域因為大資料的快速發展,著實掀起了一場“滔天巨浪”。科技的快速發展,一方面在推動著商業的發展和轉型,另一方面也給一大批從業者轉型帶來了機會。 目前,轉型大資料已經被很多人看成是實現未來發展的一個契機。畢竟,大資料的發展前景,以及各大企業給出的豐厚條件都使得從業者躍躍

Android開發中資料傳遞集合

眾所周知,Android開發中資料傳遞方式多種多樣,根據不同的用途需要選擇不同的傳遞方式。作為剛接觸Android才一年的freshman來說,第一次寫部落格還是有點緊張的,嘿嘿。好咯,言歸正傳,進入正題。 據我目前瞭解,資料傳遞方式有 (1)最基本的

Intent傳遞資料 對於GsonFormat生成的資料需要將裡面的所有內部類實現序列化接口才可打包過去

Intent傳遞資料  對於GsonFormat生成的資料需要將裡面的所有內部類實現序列化接口才可打包過去 Intent intent = new Intent(context,ReYinKouBeiActivity.class);Bundle bundle=new Bu

Android中Intent傳遞自定義物件型別的資料

Android中Intent是用來實現元件之間的通訊的,可以在元件之間傳遞資料。可以傳遞一些基本型別的資料,也可以傳遞自定義物件型別的資料,但是如果要傳遞自定義型別的物件資料,這個自定義型別的物件必須是實現了Serializable介面或者是實現Parcelab