在activity之間通過靜態變數傳遞資料,activity靜態
在activity之間通過靜態變數傳遞資料
一、簡介
主要作用:解決intent不能傳遞非序列化的對象
評價:簡單方便,但是容易發生記憶體泄露,所以要及時回收記憶體
二、具體操作
1、在傳輸資料的頁面弄好資料,傳遞給接收資料的頁面
Obj1 obj=new Obj1("fry",22);
Activity01.obj=obj;
2、在接收資料的頁面顯示資料
輸出obj即可
3、具體代碼
傳輸資料的頁面
Intent intent=new Intent();//初始化intent
intent.setClass(MainActivity.this,Activity01.class);//串連
Obj1 obj=new Obj1("fry",22);
Activity01.obj=obj;
startActivity(intent);//開啟activity
接收資料的頁面
public static Obj1 obj;
setContentView(R.layout.activity01);
textView_ans=(TextView) findViewById(R.id.textView_ans);
textView_ans.setText("obj: "+obj);
4、回收記憶體
在接收資料的頁面
protected void onDestroy() {
super.onDestroy();
obj=null;
}
java會自動回收指向null的對象
三、代碼執行個體
結果圖
代碼
activityStaticDataSend.MainActivity
1 package activityStaticDataSend; 2 3 4 5 6 7 8 import com.example.activityStaticDataSend.R; 9 10 import android.app.Activity;11 import android.content.Intent;12 import android.content.Loader;13 import android.os.Bundle;14 import android.view.View;15 import android.view.View.OnClickListener;16 import android.widget.Button;17 18 19 20 public class MainActivity extends Activity{21 private Button btn_openActivty;//建立一個button對象22 protected void onCreate(Bundle savedInstanceState) {23 super.onCreate(savedInstanceState);//父類操作24 setContentView(R.layout.activity_main);//引入名為activity_main的介面25 btn_openActivty=(Button) findViewById(R.id.btn_openActivity);//找id為btn_openActivity的button26 btn_openActivty.setOnClickListener(new OnClickListener() {//設定button點擊監聽27 28 @Override29 public void onClick(View v) {//onclick事件30 // TODO Auto-generated method stub31 Intent intent=new Intent();//初始化intent32 intent.setClass(MainActivity.this,Activity01.class);//串連33 Obj1 obj=new Obj1("fry",22);34 Activity01.obj=obj;35 startActivity(intent);//開啟activity36 }37 });38 }39 }
activityStaticDataSend.Activity01
1 package activityStaticDataSend; 2 3 4 5 6 import com.example.activityStaticDataSend.R; 7 8 import android.app.Activity; 9 import android.os.Bundle;10 import android.util.Log;11 import android.widget.TextClock;12 import android.widget.TextView;13 14 public class Activity01 extends Activity{15 public static Obj1 obj;16 private TextView textView_ans;17 @Override18 protected void onCreate(Bundle savedInstanceState) {19 // TODO Auto-generated method stub20 super.onCreate(savedInstanceState);21 setContentView(R.layout.activity01);22 textView_ans=(TextView) findViewById(R.id.textView_ans);23 textView_ans.setText("obj: "+obj);24 }25 @Override26 protected void onDestroy() {27 // TODO Auto-generated method stub28 super.onDestroy();29 obj=null;30 }31 }