很长时间都没有看Android基础了,很多都已经陌生了,抽个时间来复习一下,以备以后用到时能迅速捡起来。这一节主要来回顾Activity。首先,得知道Activity的生命周期,及执行的顺序。算了,直接上一张图吧,如下:
这张图较重要,你得想一想什么状况下执行什么周期,抛个问题,如情况一,XActivity正在运行并可见,突然最小化-->再到可见,情况二正在运行并可见的X1Activity跳转到X2Activity,然后从X2Activity退出,面试经常会问到这些。
然后就是Activity的传数据,废话不多说,直接上代码:
public class MainActivity extends Activity {
private Button btnMain;
private TextView tvMain;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnMain = (Button) findViewById(R.id.btn_main);
tvMain = (TextView) findViewById(R.id.tv_main);
System.out.println("onCreate");
btnMain.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
Bundle bundle = new Bundle();
Person person = new Person("小明","男",24);
bundle.putSerializable("person",person);
intent.putExtras(bundle);
//不需要回传数据
startActivity(intent);
//需要回传数据
startActivityForResult(intent,101);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==101){
Person data2 = (Person) data.getSerializableExtra("data2");
System.out.println("data2"+data2);
tvMain.setText("主界面显示:"+data2.getName()+data2.getAge()+data2.getSex());
}
}
@Override
protected void onStart() {
super.onStart();
System.out.println("onStart");
}
@Override
protected void onResume() {
super.onResume();
System.out.println("onResume");
}
@Override
protected void onPause() {
super.onPause();
System.out.println("onPause");
}
@Override
protected void onStop() {
super.onStop();
System.out.println("onStop");
}
@Override
protected void onRestart() {
super.onRestart();
System.out.println("onRestart");
}
@Override
protected void onDestroy() {
super.onDestroy();
System.out.println("onDestroy");
}
}
SecondActivity.class代码如下:
public class SecondActivity extends Activity {
private TextView tvs;
private Button btnSecond;
private Person serializable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
tvs = (TextView) findViewById(R.id.tv);
btnSecond = (Button) findViewById(R.id.btn_Second);
//Bundle bundle = getIntent().getBundleExtra("data");
// System.out.println("bundle= "+bundle);
// Serializable person =bundle.getString("person");
serializable = (Person) getIntent().getExtras().getSerializable("person");
System.out.println("你接收的客户信息是:"+ serializable);
tvs.setText("你接收的客户信息是:"+ serializable);
btnSecond.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(SecondActivity.this,MainActivity.class);
intent.putExtra("data2",serializable);
setResult(100,intent);
SecondActivity.this.finish();
}
});
}
}
Person类:
public class Person implements Serializable {
private String name;
private int age;
private String sex;
public Person() {
}
public Person(String name, String sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}
}
Activity的基础就先说这些。