㈠ 用什麼方法在Activity之間傳遞大數據參
對於比較大的數據傳遞解決的方法如下:
方法一:將需要傳遞的數據寫在臨時文件或專者資料庫屬中,再跳轉到另外一個組件的時候再去讀取這些數據信息,這種處理方式會由於讀寫文件較為耗時導致程序運行效率較低;
方法二:將需要傳遞的數據信息封裝在一個靜態的類中(注意當前組件和要跳轉到的組件必須屬於同一個進程,因為進程之間才能夠共享數據),在當前組件中為類設置內容,然後再跳轉到的組件中去取,這種處理方式效率很高,但是會破壞程序的獨立性。
㈡ Android Intent的作用,哪些類型的數據可以被傳遞
(1) 要激活一個新的Activity,或者讓一個現有的Activity執行新的操作,可以通過調用Context.startActivity()或者Activity.startActivityForResult()方法。這兩個方法需要傳入的Intent參數也稱為Activity Action Intent(活動行為意圖),根據Intent對象對目標Activity描述的不同,來啟動與之相匹配的Activity或傳遞信息。
(2) 要啟動一個新的服務,或者向一個已有的服務傳遞新的指令,調用Context.startService()方法或調用Context.bindService()方法將調用此方法的上下文對象與Service綁定。
Intent一旦發出,Android都會准確找到相匹配的一個或多個Activity、Service或Broadcast-Receiver作為響應。所以,不同類型的Intent消息不會出現重疊:BroadcastIntent消息只會發送給BroadcastReceiver,而絕不可能發送給Activity或Service。由startActivity()傳遞的消息也只可能發送給Activity,由startService()傳遞的Intent只可能發送給Service。
向下一個Activity傳遞數據(使用Bundle和Intent.putExtras)
Intent it = new Intent(Activity1.this, Activity2.class);
Bundle bundle=new Intent();
bundle.putString("name", "This is from MainActivity!");
it.putExtras("bd",bundle); // it.putExtra(「test」, "shuju」);
startActivity(it); // startActivityForResult(it,REQUEST_CODE);