在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的button 26 btn_openActivty.setOnClickListener(new OnClickListener() {//设置button点击监听 27 28 @Override 29 public void onClick(View v) {//onclick事件 30 // TODO Auto-generated method stub 31 Intent intent=new Intent();//初始化intent 32 intent.setClass(MainActivity.this,Activity01.class);//连接 33 Obj1 obj=new Obj1("fry",22); 34 Activity01.obj=obj; 35 startActivity(intent);//打开activity 36 } 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 @Override 18 protected void onCreate(Bundle savedInstanceState) { 19 // TODO Auto-generated method stub 20 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 @Override 26 protected void onDestroy() { 27 // TODO Auto-generated method stub 28 super.onDestroy(); 29 obj=null; 30 } 31 }