Activity是android重要组件,是一个视图组件,我们所熟知的android应用,一个应用屏幕显示就是一个Activity,Activity就像是人的一张脸,脸上的五官就相当于我们添加在Activity的组件如Button。Activity也如人一般,有生老病死,一个循环周期,Activity生命周期有七种状态,onCreate(),onStart(),onResume(),onPuause(),onStop(),onDestroy()。
    Activity生命周期如图:
        

android学习 - Activity and Intent_Intent


    那么Activity与Intent是什么关系呢?Intent好比一个信使,两个Activity就像是现实中的情侣,他们远隔一方,难挨相思之苦,所以需要一个信使,来给他们送送信,送送东西什么的,这样就方便多了,不用自己来回跑,那么Activity怎样指使Intent送信呢?如果我们送信的话,需要在信封上面写地址吧,OK,Intent提供了这样一个方法,setClass(本地址,对方地址);,光有地址没内容,是不是很不爽?对了,如果你寄个空的信封,估计你女朋友要骂你了,OK,这个小意思,Intent会帮你搞定,Intent提供了这样的功能,putExtra(key,vaue);就会帮你传递你需要传递的信息,key可以说是你写信的标题,作为一个标识,value就是你信上的内容了,OK,这样算是把信写好了,但是还没完,如果你没有要求Intent送信,他也是不会送的,所以Activity有一个方法,startActivity(Intent),这样我们情书就发送到了下一个Activity,两个Activity从此解得相思苦。
    主要代码:

  1. //绑定时间监听 
  2. btn1.setOnClickListener(new OnClickListener() { 
  3. @Override 
  4. public void onClick(View v) { 
  5. // TODO Auto-generated method stub 
  6. Intent _inIntent = new Intent();    //创建一个Intent对象 
  7. _inIntent.putExtra("xiaozhu""你好啊,我的朋友!");   //像Intent加入信息-键值对 
  8. _inIntent.setClass(FirstActivity.this, SecondActivity.class);  //设置目标Activity 
  9. FirstActivity.this.startActivity(_intent);  //启动跳转到下一个Activity 
  10. });  


我们的Intent还是很强大的,下面我们用Intent实现拨号功能,请看代码:
 
  1. btn3.setOnClickListener(new OnClickListener() { 
  2. @Override 
  3. public void onClick(View v) { 
  4. // TODO Auto-generated method stub 
  5. Intent _intent = new Intent();   //创建一个Intent对象 
  6. _intent.setAction(Intent.ACTION_DIAL);   //设置Intent动作,就是需要Instent做出什么样的反应 
  7. _intent.setData(Uri.parse("tel:13787669477"));  //设置电话号码,参数 
  8. FirstActivity.this.startActivity(_intent);   //启动跳转,跳转到打电话界面 
  9. }); 
当我们实现应用的时候,会出现各种情况,比如我们在写微博的时候,突然来电话了,我们手机就会跳转到接电话的Actvity,这样我们的微博应用就被覆盖了,当我们打电话结束后,我们还想写的时候,如果我们以前写的全没了,这就会让我们有种发狂的感觉,所以我们强大的Activity就出了奇招,onSaveInstanceState(Bundle outState),就是保存我们Activity状态的方法,很好的强大,当然既然有存的方法,那么肯定有取的方法了,onRestoreInstanceState(Bundle savedInstanceState),就是我们Activity取得状态数据的方法,这样我们就不必担心我们输入的数据丢失了。
     主要代码:
 
  1. protected void onSaveInstanceState(Bundle outState) { 
  2. // TODO Auto-generated method stub 
  3. //super.onSaveInstanceState(outState); 
  4.    String etString = et1.getText().toString();   //取得输入框中数据,et1为EditText 
  5.    outState.putString("byxiaozhu", etString);  //将当前Activity的状态保存在outStat,参数是键值对 
  6.  
  7.      
  8.  
  9. @Override 
  10. protected void onRestoreInstanceState(Bundle savedInstanceState) { 
  11. // TODO Auto-generated method stub 
  12. //super.onRestoreInstanceState(savedInstanceState); 
  13. String state = savedInstanceState.getString("byxiaozhu");   //取出Activity数据 
  14. et1.setText(state);  //将取出数据显示在输入框中 



今天学习到此,下次继续,把每天学到的东西,记录下来,静下心往前走。。。。。